Evento Form.Error (Access)

O evento Erro ocorre quando um erro de tempo de execução é produzido no Microsoft Access quando um formulário tem o foco.

Sintaxe

expressão. Erro (DataErr, Response)

expressão Uma variável que representa um objeto Form.

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
DataErr Obrigatório Integer O código de erro retornado pelo objeto Err quando ocorre um erro. Use o argumento DataErr com a função Error para mapear o número para a mensagem de erro correspondente.
Response Obrigatório Integer A configuração determina se uma mensagem de erro é exibida. O argumento Response pode ser uma das seguintes constantes intrínsecas.
  • acDataErrContinue Ignore o erro e continue sem exibir a mensagem de erro padrão do Microsoft Access. Você pode fornecer uma mensagem de erro personalizada no lugar da mensagem de erro padrão.

  • acDataErrDisplay (Padrão) Exibir a mensagem de erro de acesso padrão.

Comentários

Isso inclui erros do mecanismo de banco de dados access, mas não erros de tempo de execução no Visual Basic ou erros do ADO.

Para executar uma macro ou procedimento de evento quando esse evento ocorrer, defina a propriedade OnError como o nome da macro ou para [Procedimento de Evento].

Executando um procedimento de evento ou uma macro quando ocorre um evento Error , você pode interceptar uma mensagem de erro do Access e exibir uma mensagem personalizada que transmite um significado mais específico para seu aplicativo.

Exemplo

O exemplo a seguir mostra como você pode substituir uma mensagem de erro padrão por uma mensagem de erro personalizada. Quando o Access retorna uma mensagem de erro indicando que encontrou uma chave duplicada (código de erro 3022), este procedimento de evento exibe uma mensagem que fornece mais informações específicas do aplicativo aos usuários.

Para testar o exemplo, adicione o procedimento de evento a seguir a um formulário baseado em uma tabela com um número de identificação de funcionário exclusivo como chave de cada registro.

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

O exemplo a seguir mostra como você pode substituir uma mensagem de erro padrão por uma mensagem de erro personalizada.

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

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.