Ich habe den folgenden Code für eine Schaltfläche zum Löschen in Visual Basic in Microsoft Access geschrieben.Laufzeitfehler 3021 - kein aktueller Datensatz zum Löschen der Schaltfläche
Private Sub Delete_Click()
If Not (Me.ComputerSubform.Form.Recordset.EOF And Me.ComputerSubform.Form.Recordset.BOF) Then
If MsgBox("Are you sure to delete?", vbYesNo) = vbYes Then
CurrentDb.Execute "DELETE FROM Computer " & _
" WHERE PCSN=" & Me.ComputerSubform.Form.Recordset.Fields("PCSN")
Me.ComputerSubform.Form.Requery
End If
End If
End Sub
Das erste Mal, es Worte gut. Aber wenn ich versuche, einen anderen Datensatz zu löschen, werde ich auf "Laufzeitfehler 3021 - kein aktueller Datensatz" stoßen. Ich konnte es nicht verstehen, da der Code für mich eine Strafe ist und Daten verfügbar sind. Ich würde jede Hilfe schätzen. Vielen Dank!
P.S. Es tut mir leid, dass ich meine Tabelle nicht veröffentlichen kann, da sie viele vertrauliche Daten enthält.
Nach Löschen eines Datensatzes in einem MS-Access-Verzeichnis dset, ich glaube, du musst in die nächste Zeile gehen, um erfolgreich darauf zugreifen zu können. Es ist eine Weile her, seit ich dieses Problem gelöst habe, so dass einige Versuche und Fehler erforderlich sein könnten. –
@ron tornambe Danke! Sie haben recht, wenn Sie in die nächste Zeile wechseln, wird dieses Problem nicht auftreten. Gibt es eine Codierungsmethode, um es zu lösen? – user292965
Versuchen Sie @dbmitch Antwort, aber ich denke, dass Sie an die Spitze der RS bringen können. Sie können auch versuchen, mich.ComputerSubform.Form.MoveNext –