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 |
|
Flux de programme |
|
Flux de programme |
|
Bloc de données |
|
Bloc de données |
|
Bloc de données |
|
Bloc de données |
|
Action de données |
|
Action de données |
|
Action de données |
|
Action de données |
|
Action de données |
|
Action de données |
|
Action de données |
|
Action de données |
|
Action de données |
|
Action de données |
|
Action de données |
|
Action de données |
|
Action de données |
Pour créer une macro de données qui capture l'événement Après MAJ, procédez comme suit :
Ouvrez la table pour laquelle vous souhaitez capturer l'événement Après MAJ.
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 :
Ouvrez la table pour laquelle vous souhaitez capturer l'événement Après MAJ.
Sous l'onglet Table, dans le groupe Événements Après, cliquez sur Après MAJ.
Sélectionnez le code ci-dessous et appuyez sur Ctrl+C pour le copier dans le Presse-papiers.
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=""-- Status changed to " & [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=""-- Issue resolved as " & [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