在MS Access 2013中删除连续表单上的第一条记录

时间:2016-12-21 22:04:16

标签: forms ms-access access-vba

我在连续表单上有一个“删除”按钮,单击时执行以下SQL:

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)

按钮位于连续的表单上,如下所示: enter image description here

我必须进行某种初始化才能使其正常工作 -

我可以毫无问题地删除第2和第3条记录,但是如果我单击第一条记录上的“删除”按钮,则子窗体变为空白,就好像我删除了所有记录一样 - (事实上并非如此)。然后,如果我重新选择“测试幻灯片”以查看实际发生的情况,我会收到错误“数据已更改”另一位用户编辑此记录并在您尝试保存更改之前保存更改。

这里发生了什么,我需要做些什么才能使其正常工作?

1 个答案:

答案 0 :(得分:2)

如果使用SQL删除记录,则表单不知道该记录。之后您需要Me.Requery

更简单的是运行DoCmd.RunCommand acCmdDeleteRecord

来自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