Compartilhar via


Evento de macro Após Atualização

Aplica-se ao: Access 2013, Office 2013

O evento After Update ocorre após a alteração de um registro.

Observação

O evento After Update só está disponível em Macros de Dados.

Comentários

Use o evento After Update para executar todas as ações que você deseja que ocorram quando um registro for alterado. Os usos comuns para After Insert incluem impor regras comerciais, atualização de um total agregado e envio de notificações.

Você pode usar a função Updated("Nome do Campo") para determinar se um campo foi alterado. O exemplo de código a seguir mostra como usar uma instrução If para determinar se o campo PaidInFull foi alterado.

 
If  Updated("PaidInFull")   Then 
 
    /* Perform actions based on changes to the field.   */ 
 
End If 
 

Você pode usar o acesso ao valor anterior em um campo usando a sintaxe a seguir.

[Old].[Field Name]

Por exemplo, para acessar o valor anterior do campo QuantityIInStock, use a sintaxe a seguir.

[Old].[QuantityInStock]

Os valores anteriores serão permanentemente excluídos quando o evento After Update terminar.

A tabela a seguir lista comandos de macro que podem ser usados no evento After Update.

Tipo de Comando

Comando

Fluxo do programa

Instrução de macro Comentário

Fluxo do programa

Instrução de macro Grupo

Fluxo do programa

Bloco de macro Se... Então... Senão

Bloco de dados

Ação de macro CriarRegistro

Bloco de dados

Ação de macro EditarRegistro

Bloco de dados

Ação de macro ParaCadaRegistro

Bloco de dados

Bloco de dados PesquisarRegistro

Ação de Dados

Ação de macro CancelarAlteraçãodeRegistro

Ação de Dados

Ação de macro LimparErrodaMacro

Ação de Dados

Ação de macro ExcluirRegistro

Ação de Dados

Ação de macro SairparaCadaRegistro

Ação de Dados

Ação de macro RegistrarEvento

Ação de Dados

Ação de macro AoOcorrerErro

Ação de Dados

Ação de macro GerarErro

Ação de Dados

Ação de macro ExecutarMacrodeDados

Ação de Dados

Ação de macro EnviarEmail

Ação de Dados

Ação de macro DefinirCampo

Ação de Dados

Ação de macro DefinirVarLocal

Ação de Dados

Ação de macro PararTodasMacros

Ação de Dados

Ação de macro PararMacro

Para criar uma macro Data que captura o evento After Update, use estas etapas:

  1. Abra a tabela para a qual você deseja capturar o evento After Update.

  2. Na guia Tabela, no grupo After Events, clique em After Update.

Uma macro de dados vazia é exibida no designer de macros.

Exemplo

O exemplo de código a seguir usa o evento After Update para executar uma macro de dados nomeada que adiciona um registro à tabela Comentário sempre que o status de um problema for atualizado.

Clique aqui para exibir uma cópia de macro que você pode colar no Designer de Macros.

Para exibir este exemplo no designer de macros, use estas etapas:

  1. Abra a tabela para a qual você deseja capturar o evento After Update.

  2. Na guia Tabela, no grupo After Events, clique em After Update.

  3. Selecione o código no seguinte exemplo de código e então pressione CTRL+C para copiá-lo para a Área de Transferência.

  4. Ative a janela do designer de macros e pressione CTRL+V.

    <DataMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/04/application"> 
      <DataMacro Event="AfterUpdate"> 
        <Statements> 
          <ConditionalBlock> 
            <If> 
              <Condition>Updated("Status")</Condition> 
              <Statements> 
                <Action Name="RunDataMacro"> 
                  <Argument Name="MacroName">Comments.AddComment</Argument> 
                  <Parameters> 
                    <Parameter Name="prmRelatedID" Value="[ID]" /> 
                    <Parameter Name="prmComment" Value="&quot;-- Status changed to &quot; &amp; [Status]" /> 
                    <Parameter Name="prmUserID" Value="[UserID]" /> 
                  </Parameters> 
                </Action> 
              </Statements> 
            </If> 
          </ConditionalBlock> 
          <ConditionalBlock> 
            <If> 
              <Condition>Updated("Resolution")</Condition> 
              <Statements> 
                <Action Name="RunDataMacro"> 
                  <Argument Name="MacroName">Comments.AddComment</Argument> 
                  <Parameters> 
                    <Parameter Name="prmRelatedID" Value="[ID]" /> 
                    <Parameter Name="prmUserID" Value="[UserID]" /> 
                    <Parameter Name="prmComment" Value="&quot;-- Issue resolved as &quot; &amp; [Resolution]" /> 
                  </Parameters> 
                </Action> 
              </Statements> 
            </If> 
          </ConditionalBlock> 
        </Statements> 
      </DataMacro> 
    </DataMacros>
If  Updated("Status")   Then 
     RunDataMacro 
        Macro Name   Comments.AddComment 
     Parameters 
       prmRelatedID   = [ID] 
         prmComment   ="--Status Changes to "&[Status] 
          prmUserID   =[ChangedByUserID] 
End If 
 
If   Updated("Resolution")   Then 
     RunDataMacro 
        Macro Name   Comments.AddComment 
     Parameters 
       prmRelatedID   = [ID] 
          prmUserID   =[ChangedByUserID] 
         prmComment   ="--Issue Resolved as "&[Status] 
End If