Supportnet / Forum / Datenbanken
Warnung vor Datensatzspeicherung
Frage
Habe in einem früheren Beitrag fast die Lösung für meine Aufgabe gefunden (siehe unten). Ich möchte das um einen dritten Auswahlknopf (Abbruch) erweitern, bei dem nicht wie bei me.undo alle Feldeingaben gelöscht werden, sondern lediglich der Speichervorgang abgebrochen wird, die Feldeingaben aber erhalten bleiben.
Habe eine ganze Zeit mit der Konstante vbYesNoCancel experimentiert, komme aber nicht ans Ziel.
Hat jemand einen Vorschlag??
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
Antwort 1 von erik
Auf Me.Dirty brauchst du nicht zu prüfen. Wenn das BeforeUpdate-Ereignis ausgeführt wird, dann muss vorher bereits eine Datensatzänderung vorgenommen worden sein.
Das von dir gewünschte Verhalten müsste damit erreicht werden:
Das von dir gewünschte Verhalten müsste damit erreicht werden:
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim intMsgResponse As VbMsgBoxResult
intMsgResponse=MsgBox("Datensatz jetzt speichern?", vbYesNoCancel + vbExclamation + vbDefaultButton2, "Speichern der Daten?")
If intMsgResponse = vbNo Then
Me.Undo
ElseIf intMsgResponse = vbCancel Then
Cancel = True
End If
End Sub
Antwort 2 von flow1
Danke Erik,
so komme ich ganz schön weiter.
so komme ich ganz schön weiter.