2016-12-21 1 views
0

Ich habe eine Schaltfläche „Entfernen“ auf einer kontinuierlichen Form, die die folgende SQL führt, wenn darauf geklickt:Löschen des ersten Datensatzes auf Endlosformular in MS Access 2013

Dim strSQL As String 
strSQL = "Delete SLIDE_NAME, COB_TITLE, COB_ID, COB_CATEGORY " _ 
     & "FROM tbl_SLIDE_LIST " _ 
     & "WHERE SLIDE_NAME='" & strSlideName & "' AND COB_TITLE='" & strCOB_TITLE & "';" 

CurrentDb.Execute (strSQL) 

Die Taste wie so auf die kontinuierliche Form sitzt: enter image description here

Es muss eine Art von Initialisierung sein, die ich durchführen müssen, um diese Arbeit richtig zu machen -

ich die 2. und 3. Datensätze ohne Probleme löschen können, aber wenn ich die „entfernen“ klicken auf den erste Aufnahme Das Unterformular wird leer, als ob ich alle Datensätze gelöscht hätte (was nicht der Fall ist). Wenn ich dann erneut die "Testfolie" auswähle, um zu sehen, was tatsächlich passiert ist, erhalte ich den Fehler "Die Daten wurden geändert" Ein anderer Benutzer hat diesen Datensatz bearbeitet und die Änderungen gespeichert, bevor Sie versuchten, Ihre Änderungen zu speichern.

Was passiert hier und was muss ich tun, damit das funktioniert?

Antwort

2

Wenn Sie einen Datensatz mit SQL löschen, weiß das Formular nichts darüber. Sie müssen danach Me.Requery tun.

Viel einfacher wäre DoCmd.RunCommand acCmdDeleteRecord zu laufen.

Von http://access.mvps.org/access/RunCommand/codeex/50-223.htm:

'Code from Microsoft Knowledge Base Adapted by Terry Wickenden 
Private Sub cmdDelete_Click() 

    On Error GoTo Err_cmdDelete_Click 

    DoCmd.SetWarnings False 
    If MsgBox("Confirm deletion of the record?", vbQuestion + vbYesNo + vbDefaultButton2, "Delete?") = vbYes Then 
    DoCmd.RunCommand acCmdSelectRecord ' I think this isn't needed 
    DoCmd.RunCommand acCmdDeleteRecord 
    End If 

Exit_cmdDelete_Click: 
    DoCmd.SetWarnings True 
    Exit Sub 

Err_cmdDelete_Click: 
    MsgBox Err.Description 
    Resume Exit_cmdDelete_Click 

End Sub 
+0

Ich versuchte dies und ich - „Der Befehl oder die Aktion‚DeleteRecord‘jetzt nicht verfügbar ist – monty327

+0

Das eigentliche Problem verliert das Lesezeichen zu stammen scheint, oder so für.. Beispiel: Wenn ich alle Datensätze aus einer Folie lösche und zu dieser Folie zurückkomme, würde ich erwarten, dass die Folie leer angezeigt wird, aber die Datensätze der anderen Folie werden angezeigt. – monty327

Verwandte Themen