Form.Error 事件 (Access)
当窗体具有焦点时,当 Microsoft Access 中生成运行时错误时,将发生 Error 事件。
语法
表达式。DataErr (错误,响应)
expression:表示 Form 对象的变量。
参数
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
DataErr | 必需 | Integer | 发生错误时 Err 对象返回的错误代码。 将 DataErr 参数与 Error 函数结合使用,将数字映射到相应的错误消息。 |
响应 | 必需 | Integer | 设置确定是否显示错误消息。 Response 参数可以是以下固有常量之一。
|
备注
这包括 Access 数据库引擎错误,但不包括 Visual Basic 中的运行时错误或来自 ADO 的错误。
若要在发生此事件时运行宏或事件过程,请将 OnError 属性设置为宏的名称或 [事件过程]。
通过在发生 Error 事件时运行事件过程或宏,可以截获 Access 错误消息并显示一条自定义消息,该消息传达了应用程序的更具体含义。
示例
下面的示例指出了如何用自定义错误消息替代默认的错误消息。 当 Access 返回一条错误消息,指示它已找到重复的密钥 (错误代码 3022) 时,此事件过程会显示一条消息,为用户提供更多特定于应用程序的信息。
若要试用该示例,请将下面的事件过程添加到基于表(该表将唯一的雇员 ID 编号作为每条记录的键)的窗体中。
Private Sub Form_Error(DataErr As Integer, Response As Integer)
Const conDuplicateKey = 3022
Dim strMsg As String
If DataErr = conDuplicateKey Then
Response = acDataErrContinue
strMsg = "Each employee record must have a unique " _
& "employee ID number. Please recheck your data."
MsgBox strMsg
End If
End Sub
下面的示例指出了如何用自定义错误消息替代默认的错误消息。
Private Sub Form_Error(DataErr As Integer, Response As Integer)
Select Case DataErr
Case 2113
MsgBox "Only numbers are acceptable in this box", vbCritical, "Call 1-800-123-4567"
Response = acDataErrContinue
Case 2237
MsgBox "You can only choose from the dropdown box"
Response = acDataErrContinue
Case 3022
MsgBox "You entered a value that exists already in another record"
Response = acDataErrContinue
SSN.Value = SSN.OldValue
Case 3314
MsgBox "The DOH is required, so you cannot leave this field empty"
Response = acDataErrContinue
Case Else
Response = acDataErrDisplay
End Select
ActiveControl.Undo
End Sub
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。