我有與下面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