TheScripts上最常被问到的问题之一是:我可以用我自己的标准错误消息替换吗? 在某些情况下答案是肯定的,它涉及将代码放置在Form的Error()事件中,并将特定参数设置为2个值中的任意一个。 当您的窗体处于活动状态时,会发生许多错误,并且在此上下文中,当这些错误发生时,您可以替换标准的Access行为,而这种行为对用户来说更友好。 如前所述,通过将代码附加到Form的Error()事件上,只要在运行Form时发生可陷阱的错误,就会调用过程。
调用的语法如下:Sub Form_Error(DataErr为整数,响应为整数)
__1。 DataErr-包含刚发生的错误的错误号。 __2。 响应-允许您指定希望Access处理错误的方式。 如果您的代码能够令人满意地处理错误,并且您不希望Access干预或显示其自身的消息,则将acDataErrContinue值放在Response中。 如果要让Acces显示其自己的错误消息,请将acDataErrDisplay放置在“响应”中。以下代码捕获了4个可能弹出的错误。 在每种情况下,该过程都将其替换为标准访问错误消息。 如果发生了未计划的错误,则过程仅将职责传递回Access:
Private Sub Form_Error(DataErr As Integer, Response As Integer)
Const conErrDataValidation = 3317
Const conErrDataType = 2113
Const conErrDuplicateKey = 3022
Const conErrNullKey = 3058
Select Case DataErr
Case conErrDataValidation, conErrDataType
'your Error Message here
Response = acDataErrContinue
Case conErrDuplicateKey
'your Error Message here
Response = acDataErrContinue
Case conErrNullKey
'your Error Message here
Response = acDataErrContinue
Case Else
' It's an unexpected error. Let Access handle it.
Response = acDataErrDisplay
End Select
End Sub
From: https://bytes.com/topic/access/insights/622060-custom-error-messages