【发布时间】:2016-09-28 12:18:13
【问题描述】:
我在带有以下 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
该按钮最初是自动生成的“删除记录”按钮,后来我对其进行了修改以包括查询激活以及我自己的 msgBox。
“删除”按钮在修改之前显然可以正常工作。该查询也按预期工作,我在一个单独的表单上测试了一个按钮,该表单只包含 MsgBox 代码,它也有效。
但不知何故,将它们整合在一起失败了。当我单击该按钮时,我没有得到 MsgBox,它不会删除记录或运行查询。
DoCmd.GoToControl Screen.PreviousControl.Name
不过,这条线似乎已正确触发。
谁能解释这可能出了什么问题?
---编辑---
替换
Error Clear
有
On Error GoTo del_Click_Err
我现在收到错误消息 -
您输入的表达式包含无效语法
【问题讨论】:
-
你有
Err.Clear的地方应该有On Error GoTo del_Click_Err,否则你所有的代码都会忽略错误,这不是一个好主意。 -
谢谢@Andre 见上面的编辑
-
在调试时,
On Error Goto 0有时是最好的选择,它会停止代码并突出显示有问题的行。使用通用的On Error Goto Handler不知道错误发生在哪里。
标签: ms-access vba ms-access-2010