Access-o-Mania

Access-Forum => Tabelle/Abfrage => Thema gestartet von: Chris777777 am Dezember 05, 2017, 11:36:20

Titel: Daten aus einem ungebundenem Formular in eine Tabelle speichern
Beitrag von: Chris777777 am Dezember 05, 2017, 11:36:20
Hallo zusammen,

dieses Thema wurde sicherlich schon öfter behandelt, allerdings habe ich beim Durchforsten des Forums nicht die richtige Lösung meines Problems gefunden.

Ich habe ein ungebundenes Formular erstellt und möchte nun, dass die Daten, nachdem auf den Button "Datensatz speichern", geklickt wurde, die eingetragenen Daten in eine Tabelle gespeichert werden.

Mein Formular habe ich angehängt.

Vielen Dank für Eure Hilfe
Gruß,
Chris777777
Titel: Re: Daten aus einem ungebundenem Formular in eine Tabelle speichern
Beitrag von: MzKlMu am Dezember 05, 2017, 11:43:02
Hallo,
warum tust Du Dir das an und arbeitest mit einem ungebunden Formular?
Das kann Access mit einem gebunden Formular viel besser.

Welchen Grund siehst Du ungebunden zu arbeiten ?
Titel: Re: Daten aus einem ungebundenem Formular in eine Tabelle speichern
Beitrag von: Chris777777 am Dezember 05, 2017, 12:04:08
Ich bin ein absoluter Anfänger was Access betrifft. Ich dachte, dass ich bei einem ungebundenem Formular das Layout frei gestalten kann und dies bei einem gebundenem Formular nicht geht
Titel: Re: Daten aus einem ungebundenem Formular in eine Tabelle speichern
Beitrag von: MzKlMu am Dezember 05, 2017, 12:19:35
Hallo,
Du kannst auch mit einem gebundenen Formular das Layout völlig frei gestalten, ohne Einschränkung.
Titel: Re: Daten aus einem ungebundenem Formular in eine Tabelle speichern
Beitrag von: Lachtaube am Dezember 05, 2017, 13:50:50
Wollte ich mir eine Route bei Google Maps berechnen lassen oder die Wetterdaten für einen Ort bei OpenWeather.com erfahren, ist ein ungebundenes Formular bestimmt für die Eingabe von Parametern geeignet. Um neue Daten in eine definierte Struktur (Tabelle) einzutragen, nutze ich aber lieber ein gebundenes Formular, in dem ich typensicher meine Daten (oft sogar ohne jeden weiteren Code) einpflegen kann. Frei nach dem Motto: soviel Code wie nötig - aber nicht soviel Code wie möglich.

Wäre dem nicht so, hätte Access als GUI für mich keinen Wert und könnte auch durch ein beliebiges anderes Framework ersetzt werden, wo ich meine Datenbankzugriffe dann auch selbst programmieren müsste.
Titel: Re: Daten aus einem ungebundenem Formular in eine Tabelle speichern
Beitrag von: Chris777777 am Dezember 05, 2017, 14:18:40
ok, danke Euch für Eure Rückmeldungen :)
Das habe ich nun soweit gemacht. Die Einträge werden automatisch gespeichert. Ich möchte trotzdem noch zwei Schaltflächen in das Formular einfügen:
1. "Datensatz speichern": Ich weiß, dass die Einträge auch ohne diesen Button gespeichert werden, aber dieses Formular wird von vielen Leuten ausgefüllt. Daher möchte ich einen sichtbaren Button zur Speicherung einbauen
2. "Anwendung beenden": Damit soll das Formular geschlossen werden, ohne dass bereits eingegebene Daten gespeichert werden. Zusätzlich soll noch ein Fenster aufpoppen mit dem Text "Anwendung wirklich beenden?"

Ist das möglich?
Viele Grüße,
Chris777777
Titel: Re: Daten aus einem ungebundenem Formular in eine Tabelle speichern
Beitrag von: Beaker s.a. am Dezember 05, 2017, 16:53:39
Hallo Chris,
1. Private Sub cmdSave_Click()
    If Me.Dirty Then Me.Dirty = False
End Sub
2. Private Sub cmdQuit_Click()
    If MsgBox( _
               Prompt:="Anwendung wirklich beenden?", _
               Buttons:=vbYesNo) = vbYes Then
        If Me.Dirty Then Me.Undo
'Form schliessen
        DoCmd.Close acForm, Me.Name
'Programm beenden
        Application.Quit
    End If
End Sub
gruss ekkehard
Titel: Re: Daten aus einem ungebundenem Formular in eine Tabelle speichern
Beitrag von: Chris777777 am Dezember 07, 2017, 14:29:58
Etwas verspätet, aber klappt wunderbar. Danke :)

Gruß,
Chris
Titel: Re: Daten aus einem ungebundenem Formular in eine Tabelle speichern
Beitrag von: Chris777777 am Dezember 08, 2017, 15:41:06
Hallo zusammen,

ich habe noch ein Problem mit dem Speichern der Daten. Ich hatte ja bereits erwähnt, dass ich gerne einen Button zum speichern habe möchte, auch wenn der Datensatz auch so gespeichert wird. Das ist jetzt aber gerade mein Problem. Ich habe folgenden Code eingegeben:

Private Sub Datensatz_speichern_Click()
If MsgBox( _
           Prompt:="Datensatz speichern?", _
           Buttons:=vbYesNo) = vbYes Then
        If Me.Dirty Then Me.Dirty = False
     End If
DoCmd.GoToRecord acDataForm, "frmWE", acNewRec
End Sub

Das klappt soweit auch alles wunderbar. Allerdings werden alle Datensätze gespeichert. Auch diese, wenn der Benutzer auf "Nein" klickt. Diese Daten sollen jedoch nicht gespeichert werden. Hat jemand eine Lösung dafür?

Viele Grüße,
Chris
Titel: Re: Daten aus einem ungebundenem Formular in eine Tabelle speichern
Beitrag von: Beaker s.a. am Dezember 08, 2017, 16:10:26
Hallo Chris,
Du musst den Wechsel zu einem neuen Datensatz mit in den True-Part einfügen.

Edit: habe noch eine bessere Variante gefunden
Private Sub Datensatz_speichern_Click()
    If Me.Dirty Then
        If MsgBox( _
                   Prompt:="Datensatz speichern?", _
                   Buttons:=vbYesNo) = vbYes Then
            DoCmd.GoToRecord acDataForm, "frmWE", acNewRec
            'löst das Speichern wieder automatisch aus da Datensatzwechsel
        Else
           Me.Undo
        End If

End Sub
gruss ekkehard
Titel: Re: Daten aus einem ungebundenem Formular in eine Tabelle speichern
Beitrag von: Chris777777 am Dezember 08, 2017, 16:34:11
Da erhalte ich nun ich Fehlermeldung:

If-Block ohne End If...
Titel: Re: Daten aus einem ungebundenem Formular in eine Tabelle speichern
Beitrag von: Chris777777 am Dezember 08, 2017, 16:36:32
Ahh es fehlte nur ein End If in der Formel.

Der Rest klappt super!

Danke :)

Viele Grüße,
Chris
Titel: Re: Daten aus einem ungebundenem Formular in eine Tabelle speichern
Beitrag von: Beaker s.a. am Dezember 08, 2017, 17:02:09
Sorry, kann passieren           Me.Undo
        End If
    End If
End Sub
Titel: Re: Daten aus einem ungebundenem Formular in eine Tabelle speichern
Beitrag von: Chris777777 am Dezember 12, 2017, 16:22:12
Hallo zusammen,

ich habe nun noch folgendes Problem. Nachdem die Daten in dem Formular gespeichert wurden, soll wieder ein Blanko-Formular erscheinen.
Dafür sollte ja dieser Code: 
DoCmd.GoToRecord acDataForm, "frmWE", acNewRec
verantwortlich sein.
Das klappt auch soweit. Sobald ich das Formular geschlossen habe und wieder öffne, erscheinen die Einträge der letzten Speicherung. Daher habe ich im Ereignisblatt unter "beim Öffnen" nochmal denselben Code eingesetzt. Das klappt soweit auch. Kann man diese beiden Schritte vielleicht auch zusammenfassen?
Sobald ich das Formular öffne, erscheinen unten links die Anzahl der Datensätze. Klicke ich mit den Pfeilen auf vorherige Datensätze, können diese abgeändert werden. Dieses soll unterbunden werden. Sobald ein Datensatz gespeichert wurde, soll dieser nicht mehr abgeändert werden können.
Dafür soll es jedoch möglich sein, einen bereits abgespeicherten Datensatz mit einem Button wieder zu löschen.
Kennt da jemand eine Lösung?
Danke Euch und viele Grüße,
Chris
Titel: Re: Daten aus einem ungebundenem Formular in eine Tabelle speichern
Beitrag von: Beaker s.a. am Dezember 12, 2017, 18:00:12
Hallo Chris,
Zitat
Sobald ich das Formular geschlossen habe und wieder öffne, erscheinen die Einträge der letzten Speicherung. Daher habe ich im Ereignisblatt unter "beim Öffnen" nochmal denselben Code eingesetzt. Das klappt soweit auch. Kann man diese beiden Schritte vielleicht auch zusammenfassen?
Das habe ich nicht verstanden! Welchen gleichen Code beim Öffnen?
Ging doch ums Speichern.
Zitat
Sobald ein Datensatz gespeichert wurde, soll dieser nicht mehr abgeändert werden können.
Das kannst du beim Ereignis "Beim Anzeigen" (VBA: Form_Current) steuern
Private Sub Form_Current()
    If Not Me.Record Then Me.AllowEdits = False
End Sub
Zitat
einen bereits abgespeicherten Datensatz mit einem Button wieder zu löschen.
Dafür ist die Eigenschaft "Löschen zulassen" (VBA: .AllowDeletions) zuständig
(Standard ist True).

gruss ekkehard
Titel: Re: Daten aus einem ungebundenem Formular in eine Tabelle speichern
Beitrag von: Beaker s.a. am Dezember 12, 2017, 18:06:41
Hallo,
Ach ja, noch was ...
Zitat
Dafür sollte ja dieser Code: 
DoCmd.GoToRecord acDataForm, "frmWE", acNewRec
verantwortlich sein.
Das klappt auch soweit. Sobald ich das Formular geschlossen habe und wieder öffne, erscheinen die Einträge der letzten Speicherung.
Ich würde diesen Datensatzwechsel nicht beim Speichern unterbringen,
sondern, wenn du nicht die Navigation des Forms nutzen willst, mit einem
Extra-Button anstossen.
gruss ekkehard
Titel: Re: Daten aus einem ungebundenem Formular in eine Tabelle speichern
Beitrag von: Lachtaube am Dezember 12, 2017, 19:21:02
Wenn Du einen Filterausdruck wie 1=0 oder False (Falsch im deutschen Access) verwendest, und im Nach Aktualisierung Ereignis des Formulars Me.Requery aufrufst, dürfte immer nur der neue Datensatz zu sehen sein. Das GoToRecord-Gehampel würde damit auch entfallen. Alternativ kann auch die Formular-Eigenschaft Daten eingeben auf Ja gesetzt und zusammen wie zuvor beschrieben mit Me.Requery mit dem gleichen Effekt genutzt werden.
Titel: Re: Daten aus einem ungebundenem Formular in eine Tabelle speichern
Beitrag von: Chris777777 am Dezember 13, 2017, 16:03:23
Super es klappt :)
Vielen Dank Euch.

Viele Grüße,
Chris