Compartilhar via


Evento Form.Error (Access)

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

Sintaxe

expressão. Erro (DataErr, Resposta)

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 devolvido pelo objeto Err quando ocorre um erro. Utilize o argumento DataErr com a função Error para mapear o número para a mensagem de erro correspondente.
Response Obrigatório Integer A definição determina se é apresentada uma mensagem de erro. O argumento Response pode ser uma das seguintes constantes intrínsecas.
  • acDataErrContinue Ignore o erro e continue sem apresentar a mensagem de erro predefinida do Microsoft Access. Você pode fornecer uma mensagem de erro personalizada no lugar da mensagem de erro padrão.

  • acDataErrDisplay (Predefinição) Apresenta a mensagem de erro de Acesso predefinida.

Comentários

Isto inclui erros do motor de base de dados do Access, mas não erros de tempo de execução no Visual Basic ou erros do ADO.

Para executar um procedimento de macro ou evento quando este evento ocorre, defina a propriedade OnError para o nome da macro ou para [Procedimento de Evento].

Ao executar um procedimento de evento ou uma macro quando ocorre um Evento de erro , pode intercetar uma mensagem de erro do Access e apresentar uma mensagem personalizada que transmite um significado mais específico para a sua aplicação.

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 devolve uma mensagem de erro que indica que encontrou uma chave duplicada (código de erro 3022), este procedimento de evento apresenta uma mensagem que fornece mais informações específicas da aplicação aos utilizadores.

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.