After Update, événement de macro

S’applique à : Access 2013, Office 2013

L'événement Après MAJ se produit après la modification d'un enregistrement.

Remarque

L’événement Après MAJ est disponible uniquement dans les macros de données.

Remarques

Utilisez l'événement Après MAJ pour effectuer toute action souhaitée lorsqu'un enregistrement est modifié. L'événement Après MAJ peut par exemple servir à appliquer des règles professionnelles, à 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 une instruction If pour déterminer si le champ PaidInFull a été modifié.

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

Vous pouvez accéder à la valeur précédente dans un champ en utilisant la syntaxe suivante.

[Old].[Field Name]

Par exemple, pour accéder à la valeur précédente du champ QuantityInStock, utilisez la syntaxe suivante.

[Old].[QuantityInStock]

Les valeurs précédentes sont supprimées de manière définitive lorsque l'événement Après MAJ se termine.

Le tableau suivant répertorie les commandes de macros qui peuvent être utilisées dans l’événement Après MAJ.

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 l'événement Après MAJ, procédez comme suit :

  1. Ouvrez la table pour laquelle vous souhaitez capturer l'événement Après MAJ.

  2. Sous l'onglet Table, dans le groupe Événements Après, cliquez sur Après MAJ.

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 MAJ pour exécuter une macro de données nommée qui ajoute un enregistrement à la table Comment chaque fois que l’état d’un problème est mis à jour.

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

Pour afficher cet exemple dans le concepteur de macros, procédez comme suit :

  1. Ouvrez la table pour laquelle vous souhaitez capturer l'événement Après MAJ.

  2. Sous l'onglet Table, dans le groupe Événements Après, cliquez sur Après MAJ.

  3. Sélectionnez le code ci-dessous et appuyez sur Ctrl+C pour le copier dans le Presse-papiers.

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