Событие Form.Error (Access)

Событие Error возникает при возникновении ошибки во время выполнения в Microsoft Access, когда форма имеет фокус.

Синтаксис

expression. Ошибка (DataErr, Ответ)

выражение: переменная, представляющая объект Form.

Параметры

Имя Обязательный или необязательный Тип данных Описание
DataErr Обязательный Integer Код ошибки, возвращаемый объектом Err при возникновении ошибки. Используйте аргумент DataErr с функцией Error , чтобы сопоставить номер с соответствующим сообщением об ошибке.
Отклик Обязательный Integer Параметр определяет, отображается ли сообщение об ошибке. Аргумент Response может быть одной из следующих встроенных констант.
  • acDataErrContinue Проигнорируйте ошибку и продолжайте работу, не отображая сообщение об ошибке Microsoft Access по умолчанию. Вместо сообщения об ошибке по умолчанию можно указать пользовательское сообщение об ошибке.

  • acDataErrDisplay (по умолчанию) Отображает сообщение об ошибке Access по умолчанию.

Замечания

Сюда входят ошибки ядра СУБД Access, но не ошибки времени выполнения в Visual Basic или ошибки из ADO.

Чтобы выполнить макрос или процедуру события при возникновении этого события, задайте для свойства OnError имя макроса или [Процедура события].

Выполняя процедуру события или макрос при возникновении события Error , можно перехватить сообщение об ошибке Access и отобразить пользовательское сообщение, которое передает более конкретное значение для приложения.

Пример

В следующем примере показано, как заменить сообщение об ошибке по умолчанию пользовательским сообщением об ошибке. Когда Access возвращает сообщение об ошибке, указывающее, что найден дубликат ключа (код ошибки 3022), эта процедура события отображает сообщение, которое предоставляет пользователям дополнительные сведения о приложении.

Чтобы попробовать пример, добавьте следующую процедуру события в форму, основанную на таблице с уникальным идентификатором сотрудника в качестве ключа для каждой записи.

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 и обратная связь.