Supportnet / Forum / Datenbanken
Datensatz nur nach Bestätigung speichern
Frage
Hi ein ganz normales Access Formular das mit einer Tabelle verknüpft ist speichert die Änderungen in einem Feld ja sofort wenn diese abgeschlossen wird, wie kompliziert ist es das Formular so abzuändern das alle Änderungen an einem Datensatz erst nach dem drücken auf einen speichern Button in die Tabelle übernommen werden?
Antwort 1 von michael.schon.vergeben
Das ist garnicht kompliziert, wenn du ein wenig VBA programmieren willst.
Ich gehe mal davon aus, dass es so einen 'Speichern'-Button auf deinem Formular schon gibt. Wenn nicht, kannst du ja mit dem Assi einen solchen erstellen und auswählen, dass das Ereignis Datensatz speichern sein soll. Dann ist der Code fertig eingetragen - wie gut das es MS schon so zur Verfügung stellt.
Um jetzt noch zu verhindern, dass beim schließen des Formulars was gespeichert wird, muß der folgende Cod eingetragen werden:
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Me.Dirty Then ' Ein Ereignis, wenn neuer DS geschrieben wird
If MsgBox("Datensatz jetzt speichern?", vbYesNo + vbExclamation + vbDefaultButton2, "Speichern der Daten?") = vbNo Then
Me.Undo ' setzt die Eingaben zurück
Exit Sub ' verlassen dieser Prozedur
End If
End If
End Sub
Hoffe, das hilft dir weiter
Ich gehe mal davon aus, dass es so einen 'Speichern'-Button auf deinem Formular schon gibt. Wenn nicht, kannst du ja mit dem Assi einen solchen erstellen und auswählen, dass das Ereignis Datensatz speichern sein soll. Dann ist der Code fertig eingetragen - wie gut das es MS schon so zur Verfügung stellt.
Um jetzt noch zu verhindern, dass beim schließen des Formulars was gespeichert wird, muß der folgende Cod eingetragen werden:
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Me.Dirty Then ' Ein Ereignis, wenn neuer DS geschrieben wird
If MsgBox("Datensatz jetzt speichern?", vbYesNo + vbExclamation + vbDefaultButton2, "Speichern der Daten?") = vbNo Then
Me.Undo ' setzt die Eingaben zurück
Exit Sub ' verlassen dieser Prozedur
End If
End If
End Sub
Hoffe, das hilft dir weiter
Antwort 2 von Woodman
Ja vielen dank, das is genau das was mir gefehlt hat

