Datensatz Wird Gelöscht-Nachricht in Microsoft Access-VBA
In einer Microsoft Access-Anwendung, die ich bin, zu ändern, bestimmte vba-Funktionen liefern die Meldung:
"Record is Deleted"
Diese wird in einer message-box mit keine Fehler-Nummer und ein gelbes Achtung-Zeichen.
Dies ist nicht ein Fehler, die behoben werden können, die durch traditionelle Fehlerbehandlung (on error...". Es ist auch nicht betroffen von der DoCmd.setwarnings=false
Ich bin auf der Suche nach einige Ratschläge, wie man trap oder behandeln dieses Element.
Du musst angemeldet sein, um einen Kommentar abzugeben.
"Datensatz ist gelöscht" ist der Laufzeitfehler 3167, und es kann eingeschlossen werden, die mit normalen
On Error
Handhabung. Dies kann überprüft werden, per VBA-code wie dem folgenden:Wenn Sie führen Sie den code ein und klicken Sie auf "löschen Sie den Datensatz aus unter es" während der
MsgBox
angezeigt wird, dann dierst!
Referenz in derDebug.Print
löst den Laufzeitfehler 3167 und dieOn Error
fängt ihn auf.Überprüfen Sie Ihren code, um zu sehen, wenn es eine aktive
On Error
(vielleicht erklärt in einem früheren Aufruf von Prozedur), die einfach zeigt eine schlichteMsgBox
mit derErr.Description
. Das würde erklären, das Verhalten, die Sie beschreiben.Vielleicht ziehen Sie einen Datensatz löschen aus mehreren Tabellen... wie
Dieses Versagen wird auf die zweite Zeile Löschen, da rec(0) existiert nicht mehr auf der zweiten Linie, die Sie gerade gelöscht haben, es aus tableA das ist, wo Ihre recordset kommt.
Jedoch
arbeiten. Es kann nicht sein, die best-practice-Methode, aber wenn du diesen Fehler gemeldet wird, versuchen diesen zu sehen, wenn das recordset gelöscht wird, ist der Grund.
Eine bessere Methode sein könnte, um eine variable zu deklarieren und zuweisen, rec(0).Wert der variable. Verwenden Sie dann die variable an Stelle von rec(0) im code.