Form.Error 事件 (Access)

当窗体具有焦点时,当 Microsoft Access 中生成运行时错误时,将发生 Error 事件。

语法

表达式DataErr (错误响应)

expression:表示 Form 对象的变量。

参数

名称 必需/可选 数据类型 说明
DataErr 必需 Integer 发生错误时 Err 对象返回的错误代码。 将 DataErr 参数与 Error 函数结合使用,将数字映射到相应的错误消息。
响应 必需 Integer 设置确定是否显示错误消息。 Response 参数可以是以下固有常量之一。
  • acDataErrContinue 忽略错误并继续,而不显示默认的 Microsoft Access 错误消息。 可以提供自定义错误消息来代替默认错误消息。

  • acDataErrDisplay (Default) 显示默认 Access 错误消息。

备注

这包括 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。