【问题标题】:Deleting the first record on continuous form in MS Access 2013在 MS Access 2013 中删除连续表单上的第一条记录
【发布时间】:2016-12-21 22:04:15
【问题描述】:

我在连续表单上有一个“删除”按钮,单击该按钮会执行以下 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)

按钮位于连续形式上,如下所示:

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

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

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

【问题讨论】:

    标签: forms ms-access vba


    【解决方案1】:

    如果您使用 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
    

    【讨论】:

    • 我试过了,我得到 - “命令或操作 'DeleteRecord' 现在不可用。
    • 真正的问题似乎源于丢失书签,或者如此。例如,如果我从一张幻灯片中删除所有记录,然后返回到该幻灯片,我希望看到幻灯片显示为空白,但它显示了另一张幻灯片中的记录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多