Supportnet Computer
Planet of Tech

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:

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.