Compartilhar via


Evento de macro Após Inserção

Aplica-se ao: Access 2013, Office 2013

O evento Após Inserir ocorre após a adição de um registro.

Observação

O evento Após Inserir está disponível somente em Macros de Dados.

Comentários

Use o evento Após Inserir para executar qualquer ação que você deseja que ocorra após a adição de um registro a uma tabela. As utilizações mais comuns do Após Inserir incluem a aplicação de regras de negócio, fluxos de trabalho, a atualização de um total agregado e o 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 abaixo 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 
 

A tabela a seguir lista comandos de macro que podem ser usadas no evento Após Inserir.

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 de Dados que capture o evento Após Inserir, siga estas etapas.

  1. Abra a tabela na qual deseja capturar o evento Após Inserir.

  2. Na guia Tabela, no grupo Após Eventos, clique em Após Inserir.

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

Exemplo

O exemplo de código a seguir usa o evento Após Inserir para executar alguns processos quando um registro é adicionado à tabela Doações. Quando um registro é adicionado, a quantidade de doações é adicionada ao campo DoaçõesRecebidas em Campanhas e ao campo TotaldaDoação na tabela Doa

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, siga estas etapas:

  1. Abra a tabela na qual deseja capturar o evento Após Inserir.

  2. Na guia Tabela, no grupo Após Eventos, clique em Após Inserir.

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

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

    <DataMacros> 
      <DataMacro Event="AfterInsert"> 
        <Statements> 
          <Comment>This data macro increments the DonationsReceived field in Campaigns and theAmountCollected field in Pledges </Comment> 
          <Action Name="SetLocalVar"> 
            <Argument Name="Name">varAmount</Argument> 
            <Argument Name="Value">[Amount]</Argument> 
          </Action> 
          <ConditionalBlock> 
            <If> 
              <Condition>Not (IsNull([CampaignID]))</Condition> 
              <Statements> 
                <ForEachRecord> 
                  <Data> 
                    <Reference>Campaigns</Reference> 
                    <WhereCondition>[ID]=[Donations].[CampaignID]</WhereCondition> 
                  </Data> 
                  <Statements> 
                    <EditRecord> 
                      <Data /> 
                      <Statements> 
                        <Action Name="SetField"> 
                          <Argument Name="Field">[DonationsReceived]</Argument> 
                          <Argument Name="Value">[DonationsReceived]+[varAmount]</Argument> 
                        </Action> 
                      </Statements> 
                    </EditRecord> 
                  </Statements> 
                </ForEachRecord> 
              </Statements> 
            </If> 
          </ConditionalBlock> 
          <ConditionalBlock> 
            <If> 
              <Condition>Not (IsNull([DonorID]))</Condition> 
              <Statements> 
                <ForEachRecord> 
                  <Data> 
                    <Reference>Donors</Reference> 
                    <WhereCondition>[ID]=[Donations].[DonorID]</WhereCondition> 
                  </Data> 
                  <Statements> 
                    <EditRecord> 
                      <Data /> 
                      <Statements> 
                        <Action Name="SetField"> 
                          <Argument Name="Field">[TotalDonated]</Argument> 
                          <Argument Name="Value">[TotalDonated]+[varAmount]</Argument> 
                        </Action> 
                      </Statements> 
                    </EditRecord> 
                  </Statements> 
                </ForEachRecord> 
              </Statements> 
            </If> 
          </ConditionalBlock> 
        </Statements> 
      </DataMacro> 
    </DataMacros>
    SetLocalVar 
                  Name   varAmount 
            Expression   =[Amount] 
     
    If   Not (IsNull([CampaignID]))   Then 
     
         For Each Record In   Campaigns 
            Where Condition   =[ID]=[Donations].[CampaignID] 
                      Alias 
     
                 EditRecord 
                              Alias 
                     SetField 
                                 Name   [DonationsReceived] 
                                Value   =[DonationsReceived]+[varAmount] 
                End EditRecord 
    End If 
     
    If   Not (IsNull([DonorID]))   Then 
     
         For Each Record In  Donors 
            WhereCondition   =[ID]=[Donations].[DonorID] 
                     Alias 
     
                 EditRecord 
                              Alias 
                     SetField 
                                 Name   [TotalDonated] 
                                Value   =[TotalDonated]+[varAmount] 
                 End EditRecord 
    End If