我在连续子窗体上有一个按钮,附加了以下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
我现在收到错误消息 -
您输入的表达式包含无效语法
答案 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',因为这就是向导为删除按钮添加的内容。