Member
Beiträge: 22
| Ich habe eine Tabelle mit drei Indizes versehen, um hinsichtlich der Kombination aus allen drei Felder eine Einmaligkeit (also Verhinderung von Dubletten) zu erzielen. Die möglicherweise daraus resultierende Schlüsselverletzung soll mit der Error-Routine gesteuert werden. Das klappt auch soweit, jedoch wird nach Ausgabe der MsgBox "Schlüsselverletzung Doppeleingabe" in den nächsten Datensatz gesprungen und die Dublette unvollständig abgespeichert. Es soll jedoch der fehlerhafte Datensatz (also die Dublette) gar nicht gespeichert werden, dass dachte ich, bekäme ich mit UNDO hin. Dem war aber nicht so. Hat jemand eine Idee, wie ich verhindere, dass die Dublette unvollständig weggeschrieben wird? Vorab vielen Dank!
Private Sub Form_AfterUpdate()
On Error GoTo Err_Form_AfterUpdate
Dim rs As DAO.Recordset
Set rs = Me.RecordsetClone
rs.Bookmark = Me.Bookmark
rs.Edit
rs!Änderungsdatum = Now
rs!WindowsBenutzerName = Environ("Username")
rs.Update
Set rs = Nothing
DoCmd.RunMacro "Adressgenerierung", , ""
Exit_Form_AfterUpdate:
Exit Sub
Err_Form_AfterUpdate:
Response = acDataErrContinue
MsgBox "Sie haben bereits für diesen Kunden eine Anfrage gestellt!" & vbCrLf & vbCrLf & "Somit ist eine erneute Anfrage nicht möglich!", vbOKOnly + vbInformation, "Schlüsselverletzung (Doppeleingabe)!"
Me.Undo
Resume Exit_Form_AfterUpdate
End Sub |