Compartilhar via


Ação da macro GerarErro

Aplica-se ao: Access 2013, Office 2013

A ação GerarErro cria uma exceção que pode ser lidada pela ação de macro AoOcorrerErro.

Observação

A ação GerarErro está disponível somente em Macros de Dados.

Setting

A ação GerarErro tem os seguintes argumentos.

Argumento

Obrigatório

Descrição

Número do erro

Sim

Um número ou uma expressão que resolve para o tipo de dados Long.

Descrição do erro

Não

Uma expressão de cadeia de caracteres que descreve o erro.

Comentários

Se a ação GerarErro for chamada em um evento de macro Antes de Alterar ou Antes de Excluir, o evento será cancelado.

Se não houver uma instrução AoOcorrerErro ativa lidando com erros, o erro gerado pela ação GerarErro será adicionado à tabela de sistema USysApplicationLog. Quando a ação GerarErro for gravada na tabela USysApplicationLog, a coluna Categoria será automaticamente definida como Execução.

Para ver a tabela USysApplicationLog, siga estas etapas:

  1. Clique no menu Arquivo e clique em Opções.

  2. Na caixa de diálogo Opções do Access, clique na guia Bancos de Dados Atual.

  3. Na seção Navegação, clique em Opções de Navegação.

  4. Na caixa de diálogo Opções de Navegação, clique em Mostrar Objetos do Sistema e clique em OK.

  5. Clique em OK para fechar a caixa de diálogo Opções do Access.

Exemplo

O exemplo a seguir mostra como usar a ação RaiseError para cancelar o evento de macro de dados Antes de Alterar. Quando o campo AssignedTo é atualizado, um bloco de dados LookupRecord é usado para determinar se o técnico atribuído está atribuído atualmente a uma solicitação de serviço aberta. Se isso for verdadeiro, o evento Before Change será cancelado e o registro não será atualizado.

Código de exemplo fornecido por: a Referência do programador do Microsoft Access 2010.

    /* Get the name of the technician  */
    Look Up A Record In tblTechnicians
        Where Condition =[tblTechnicians].[ID]=[tblServiceRequests].[AssignedTo]
    SetLocalVar
        Name TechName
        Expression [tblTechnicians].[FirstName] & " " & [tblTechnicians].[LastName]
    /* End LookUpRecord  */
    
    If Updated("AssignedTo") Then
        Look Up A Record In tblServiceRequests
            Where Condition SR.[AssignedTo]=tblServiceRequests[AssignedTo] And 
                SR.[ID]<>tblServiceRequests.[ID] And IsNull(SR.[ActualCompletionDate])
            Alias SR
            RaiseError
                Error Number 1234
                Error Description ="Cannot assign a request to the specified technician: " & [TechName]
    
    End If