我在表单上有一个按钮,该按钮运行一个插入语句,该语句从表单上的某些文本框中获取数据并将它们放入表中。
如果用户在主键(两个文本框的串联)中输入重复信息,我想弹出一个消息框,说明发生了什么事,并可能删除标准的访问警告(但这没什么大不了的) .
我以为我可以放入一个On Error GoTo
然后放入我的 msgbox,但这不起作用。出现访问警告并且未添加新记录,但会On Error
被忽略。“成功”消息框甚至仍然弹出。
这是我的代码的要点:
Dim strSQL As String
strSQL = [INSERT STATEMENT]
On Error GoTo Duplicate:
DoCmd.RunSQL (strSQL)
MsgBox "Ticket Completed!", vbOKOnly, "Success!"
JumpShip:
Exit Sub
Duplicate:
Select Case Err.Number
Case 3022
MsgBox "This ticket has already been completed!", vbOKOnly, "Error!"
Resume JumpShip
Case Else
Resume JumpShip
End Select
End Sub
我也尝试过On Error
不指定代码(只是为了更容易找到问题),但结果是一样的。每次都会弹出“由于主键违规等原因未附加 1 条记录”消息,但错误处理程序被忽略。成功的消息框弹出,然后就完成了。PK违例不是常规错误吗?