Problem bei Datensatz löschen in Form

29/01/2009 - 09:10 von Jan Lorenz | Report spam
Hallo,

ich habe ein Formular, bei dem eine Abfrage zu Grunde liegt. Da die
Access-Standard-Löschen-Funktion nicht funktioniert, habe ich das
Form_Delete-Ereignis abgefangen:

Private Sub Form_Delete(Cancel As Integer)
If MsgBox("Möchten Sie diesen Musterdatensatz wirklich entgültig
löschen?", vbYesNo, "Frage") = vbYes Then
CurrentDb.Execute "DELETE FROM tbl WHERE ID = " & Me.ID
End If
Cancel = True
End Sub

Das funktioniert auch. Allerdings wird der Datensatz dann noch als
"gelöscht" angezeigt, was Probleme verursacht, wenn man bei diesem Datensatz
in bestimmte Felder klickt, bei denen Funktionen dahinterliegen. Wenn ich
nach dem Löschen noch den Befehl "Me.Requery" einbaue, dann kommt die
Meldung "reservierter Fehler". Dann habe ich vor dem "Me.Requery" noch
versucht, zu einem anderen Datensatz zu springen, hat aber nix gebracht.
Wie kann ich die Daten nach dem Löschen frisch einlesen?

Viele Grüße
Jan
 

Lesen sie die antworten

#1 Peter Doering
29/01/2009 - 10:06 | Warnen spam
Hallo,

Jan Lorenz wrote:

ich habe ein Formular, bei dem eine Abfrage zu Grunde liegt. Da die
Access-Standard-Löschen-Funktion nicht funktioniert,



Kannst du das erlaeutern?

habe ich das
Form_Delete-Ereignis abgefangen:

Private Sub Form_Delete(Cancel As Integer)
If MsgBox("Möchten Sie diesen Musterdatensatz wirklich entgültig
löschen?", vbYesNo, "Frage") = vbYes Then
CurrentDb.Execute "DELETE FROM tbl WHERE ID = " & Me.ID



Hier solltest du evtl. Fehler abfangen:

CurrentDb.Execute "DELETE ...", dbFailOnError

Aber s.u.

End If
Cancel = True
End Sub

Das funktioniert auch. Allerdings wird der Datensatz dann noch als
"gelöscht" angezeigt, was Probleme verursacht, wenn man bei diesem Datensatz
in bestimmte Felder klickt, bei denen Funktionen dahinterliegen. Wenn ich
nach dem Löschen noch den Befehl "Me.Requery" einbaue, dann kommt die
Meldung "reservierter Fehler". Dann habe ich vor dem "Me.Requery" noch
versucht, zu einem anderen Datensatz zu springen, hat aber nix gebracht.
Wie kann ich die Daten nach dem Löschen frisch einlesen?



Die Herangehensweise ist nicht im Sinne des Erfinders. Das
Form_Delete-Ereignis wird nur angesprungen, wenn du einen Datensatz
loeschen willst. Da brauchst du nichts mehr selbst loeschen.

Lass uns klaeren, warum das Loeschen im Formular nicht funktioniert.
Vielleicht ist es was Triviales wie die Eigenschaft Loeschen auf Nein.

Gruss - Peter

Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com

Ähnliche fragen