Compartilhar via


Evento da macro Após Exclusão

Aplica-se ao: Access 2013, Office 2013

O evento Após Exclusão ocorre após a exclusão de cada evento.

Observação

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

Comentários

Use o evento Após Exclusão para executar qualquer ação que você deseja que ocorra após a exclusão de um registro. As utilizações mais comuns do Após Exclusão 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.

Quando o evento Após Exclusão ocorre, os valores contidos no registro excluído ainda permanecem disponíveis. Você pode querer usar um valor excluído para incrementar ou decrementar um total, criar uma trilha de auditoria ou comparar com um valor existente em um argumento WhereCondition .

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 acessar um valor no registro excluído utilizando a sintaxe a seguir

[Old].[Field Name]

Por exemplo, para acessar o valor do campo QuantityInStock no registro excluído, use a seguinte sintaxe.

[Old].[QuantityInStock]

Os valores contidos no registro excluído são excluídos permanentemente após a conclusão do evento Após Exclusão.

Os comandos de macro a seguir podem ser usados no evento After Delete .

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 Exclusão, siga estas etapas.

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

  2. Na guia Tabela, no grupo Após Eventos, clique em Após Exclusão.

Uma Macro de Dados vazia é exibida no designer de macros.

Exemplo

O exemplo de código a seguir usa o evento Após Exclusão para executar alguns processos quando um registro é excluído da tabela Doações. Quando um registro é excluído, a quantidade de doações é subtraída do campo DoaçõesRecebidas em DoaçõesRecebidas e do campo TotaldaDoação na tabela Doadores.

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 Exclusão.

  2. Na guia Tabela, no grupo Após Eventos, clique em Após Exclusão.

  3. Selecione o código listado abaixo e pressione CTRL+C para copiá-lo para a área de transferência.

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

    <?xml version="1.0" encoding="UTF-16" standalone="no"?> 
    <DataMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/04/application"> 
      <DataMacro Event="AfterDelete"> 
        <Statements> 
          <Comment>Initialize a variable and assign the old</Comment> 
          <Action Name="SetLocalVar"> 
            <Argument Name="Name">varAmount</Argument> 
            <Argument Name="Value">[Old].[Amount]</Argument> 
          </Action> 
          <ConditionalBlock> 
            <If> 
              <Condition>Not (IsNull([Old].[CampaignID]))</Condition> 
              <Statements> 
                <ForEachRecord> 
                  <Data> 
                    <Reference>Campaigns</Reference> 
                    <WhereCondition>[ID]=[Old].[CampaignID]</WhereCondition> 
                  </Data> 
                  <Statements> 
                    <EditRecord> 
                      <Data /> 
                      <Statements> 
                        <Action Collapsed="true" 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([Old].[DonorID]))</Condition> 
              <Statements> 
                <ForEachRecord> 
                  <Data> 
                    <Reference>Donors</Reference> 
                    <WhereCondition>[ID]=[Old].[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   =[Old].[Amount] 
     
    If   Not(IsNull([Old].[CampaignID]]))   Then 
     
         For Each Record In     Campaigns 
            Where Condition     =[ID]=[Old].[CampaignID] 
                      Alias 
            EditRecord 
                      Alias 
                  SetField   ([DonationsReceived], [DonationsReceived] - [varAmount]) 
            End EditRecord 
     
    End If 
     
    If   Not(IsNull([Old].[DonorID]]))   Then 
     
         For Each Record In    Donors 
            Where Condition     =[ID]=[Old].[DonorID] 
                      Alias 
            EditRecord 
                      Alias 
     
              SetField 
                             Name   [TotalDonated] 
                            Value   =[TotalDonated]-[varAmount] 
            End EditRecord 
    End If