Partager via


After Insert, événement macro

S’applique à : Access 2013, Office 2013

L'événement AfterInsert se produit après l'ajout d'un nouvel enregistrement.

Remarque

Le après insérer événement est disponible uniquement dans les Macros de données.

Remarques

Utilisez l'événement Après insertion pour effectuer toute action souhaitée lorsqu'un enregistrement est ajouté à une table. L'événement Après insertion peut par exemple servir à appliquer des règles professionnelles ou des flux de travail, à mettre à jour un total agrégé et à envoyer des notifications.

Vous pouvez utiliser la fonction Updated("Nom de champ") pour déterminer si un champ a changé. L’exemple de code suivant montre comment utiliser un si instruction à déterminer déterminer si le champ PaidInFull a été modifié.

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

Le tableau suivant répertorie les commandes de macro qui peuvent être utilisées dans laaprès insérer événement.

Type de commande

Command

Déroulement de programme

Comment, instruction de macro

Flux de programme

Group, instruction de macro

Flux de programme

If...Then...Else, bloc de macro

Bloc de données

CreateRecord, action de macro

Bloc de données

EditRecord, action de macro

Bloc de données

ForEachRecord, action de macro

Bloc de données

LookupRecord, bloc de données

Action de données

CancelRecordChange, action de macro

Action de données

ClearMacroError, action de macro

Action de données

DeleteRecord, action de macro

Action de données

ExitForEachRecord, action de macro

Action de données

LogEvent, action de macro

Action de données

OnError, action de macro

Action de données

RaiseError, action de macro

Action de données

RunDataMacro, action de macro

Action de données

SendEmail, action de macro

Action de données

SetField, action de macro

Action de données

SetLocalVar, action de macro

Action de données

StopAllMacros, action de macro

Action de données

StopMacro, action de macro

Pour créer une macro de données qui capture les après insérer événement, procédez comme suit.

  1. Ouvrez la table pour laquelle vous voulez capturer la après insérer événement.

  2. Sur la tableau sous l’onglet le après les événements groupe, cliquez sur après insérer.

Une macro de données vide s’affiche dans le Concepteur de macros.

Exemple

L'exemple de code suivant utilise l'événement Après suppression pour effectuer un traitement lorsqu'un enregistrement est ajouté à la table Donations. Lorsqu'un enregistrement est ajouté, le montant du don est ajouté au champ DonationsReceived dans la table Campaigns et au champ TotalDonatedField dans la table Donors.

Cliquez ici pour afficher une copie de la macro que vous pouvez coller dans le Concepteur de macros.

Pour consulter cet exemple dans le Concepteur de macros, procédez comme suit :

  1. Ouvrez la table pour laquelle vous voulez capturer la après insérer événement.

  2. Sur la tableau sous l’onglet le après les événements groupe, cliquez sur après insérer.

  3. Sélectionnez le code dans l’exemple de code suivant et appuyez sur CTRL + C pour copier dans le Presse-papiers.

  4. Activez la fenêtre du concepteur de macros, puis appuyez sur 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