MS Access 2010 - MsgBox运行查询&删除记录不起作用

时间:2016-09-28 12:18:13

标签: ms-access access-vba ms-access-2010

我在连续子窗体上有一个按钮,附加了以下VBA -

Private Sub del_Click()
On Error GoTo del_Click_Err
Dim LResponse As Integer

    On Error Resume Next
    DoCmd.GoToControl Screen.PreviousControl.Name
    Err.Clear

    If (Not Form.NewRecord) Then
        LResponse = Eval("MsgBox('You are about to delete a record.'" & _
                    "'@If you click yes, you won't be able to undo this delete operation.' & Chr(13) & Chr(10) & " & _
                    "'Are you sure you want to delete this record?@@', 276, 'Are you sure?')")
        If LResponse = vbYes Then
            DoCmd.SetWarnings False
            DoCmd.OpenQuery "qry_DeleteSpecific"
            DoCmd.RunCommand acCmdDeleteRecord
            DoCmd.SetWarnings True
        Else
        End If
    End If

    If (Form.NewRecord And Not Form.Dirty) Then
        Beep
    End If

    If (Form.NewRecord And Form.Dirty) Then
        DoCmd.RunCommand acCmdUndo
    End If

    If (MacroError <> 0) Then
        Beep
        MsgBox MacroError.Description, vbOKOnly, ""
    End If

del_Click_Exit:
    DoCmd.SetWarnings True
    Exit Sub

del_Click_Err:
    MsgBox Error$
    Resume del_Click_Exit

End Sub

该按钮最初是自动生成的&#39;删除记录&#39;按钮,我已经修改它以包括查询激活以及我自己的msgBox。

&#39;删除&#39;按钮显然在修改前工作正常。该查询也按预期工作,我在一个单独的表单上测试了一个按钮,该表单只包含了MsgBox代码,该代码也有效。

但是把它们全部放在一起却以某种方式失败了。当我点击按钮时,我没有收到MsgBox,也没有删除记录或运行查询。

DoCmd.GoToControl Screen.PreviousControl.Name

此行似乎已正确解雇。

有人可以解释这可能出现的问题吗?

--- ---编辑

代替

Error Clear

使用

On Error GoTo del_Click_Err

我现在收到错误消息 -

  

您输入的表达式包含无效语法

1 个答案:

答案 0 :(得分:1)

事实证明这一切都在行情中。报价问题对我来说仍然有点神秘,但我设法让我的代码工作。

这是改变 -

LResponse = Eval("MsgBox(""You are about to delete a record."" & " & _
            """@If you click yes, you won't be able to undo this delete operation."" & Chr(13) & Chr(10) & " & _
            """Are you sure you want to delete this record?@@"", 276, ""Are you sure?"")")

单引号似乎在它本身只是msgBox代码时起作用,但在扩展代码中却没有。无论如何,我会知道再次注意这一点。

@Andre你的评论帮我调试了这个。我最初离开了'Error Clear',因为这就是向导为删除按钮添加的内容。