我有与下面VBA附加一个持续子窗体上按钮 -的MS Access 2010 - MSGBOX运行查询和删除记录不工作
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 [email protected]@', 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
按钮原是自动生成“删除记录”按钮我已经修改它包括查询激活以及我自己的msgBox。
“删除”按钮在修改前显然工作正常。该查询也按预期工作,我测试了一个单独的表单上的按钮,它只包含MsgBox代码,这也起作用。
但是把它们放在一起已经失败了。当我单击按钮时,我没有收到MsgBox,也没有删除记录或运行查询。
DoCmd.GoToControl Screen.PreviousControl.Name
虽然此行看起来已正确触发。
有人可以解释什么可能会出错吗?
---编辑---
替换
Error Clear
随着
On Error GoTo del_Click_Err
现在我得到错误信息 -
您输入的表达式包含s无效语法
如果你有'Err.Clear',你应该有'On Error GoTo del_Click_Err',否则你所有的代码都会忽略错误,这不是一个好主意。 – Andre
Thankyou @Andre上面编辑 – Jamsandwich
调试时,'On Error Goto 0'有时是最好的选择,它会停止代码并突出显示违规行。使用通用的'On Error Goto Handler',人们不知道错误发生在哪里。 – Andre