Löschen eines Datensatzes aus einem DAO-Recordset
Sie können einen vorhandenen Datensatz in einem Recordset-Objekt vom Typ „Tabelle“ oder „Dynaset“ mithilfe der Delete-Methode löschen. Aus einem Recordset-Objekt vom Typ „Momentaufnahme“ können keine Datensätze gelöscht werden. Mit dem folgenden Codebeispiel werden alle doppelten Datensätze aus der Tabelle „Shippers“ gelöscht.
Sub DeleteDuplicateShippers()
Dim dbsNorthwind As DAO.Database
Dim rstShippers As DAO.Recordset
Dim strSQL As String
Dim strName As String
On Error GoTo ErrorHandler
Set dbsNorthwind = CurrentDb
strSQL = "SELECT * FROM Shippers ORDER BY CompanyName, ShipperID"
Set rstShippers = dbsNorthwind.OpenRecordset(strSQL, dbOpenDynaset)
' If no records in Shippers table, exit.
If rstShippers.EOF Then Exit Sub
strName = rstShippers![CompanyName]
rstShippers.MoveNext
Do Until rstShippers.EOF
If rstShippers![CompanyName] = strName Then
rstShippers.Delete
Else
strName = rstShippers![CompanyName]
End If
rstShippers.MoveNext
Loop
Exit Sub
ErrorHandler:
MsgBox "Error #: " & Err.Number & vbCrLf & vbCrLf & Err.Description
End Function
Bei Verwendung der Delete-Methode löscht das Access-Datenbankmodul den aktuellen Datensatz sofort, ohne jegliche Warnung oder Eingabeaufforderung. Beim Löschen eines Datensatzes wird nicht automatisch der nächste Datensatz zum aktuellen Datensatz. Um zum nächsten Datensatz zu wechseln, müssen Sie die MoveNext-Methode verwenden. Beachten Sie, dass Sie nicht zum gelöschten Datensatz zurückkehren können, nachdem Sie ihn verlassen haben.
Wenn Sie versuchen, auf einen Datensatz zuzugreifen, nachdem Sie ihn in einem Tabellentyp-Recordset gelöscht haben, wird Fehler 3167, "Datensatz wird gelöscht" angezeigt. Bei einem Dynaset wird der Fehler 3021 "Kein aktueller Datensatz" angezeigt.
Wenn Sie einen Recordset-Klon am gelöschten Datensatz positioniert haben und versuchen, seinen Wert zu lesen, wird unabhängig vom Typ des Recordset-Objekts der Fehler 3167 angezeigt. Wenn Sie versuchen mithilfe einer Textmarke zu einem gelöschten Datensatz zu wechseln, wird Ihnen ebenfalls Fehler 3167 angezeigt.
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für