Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Access 2013, Office 2013
L’événement Après suppression se produit après la suppression d’un enregistrement.
Remarque
L’événement Après suppression est disponible uniquement dans les macros de données.
Remarques
Utilisez l’événement Après suppression pour effectuer toute action souhaitée lors de la suppression d’un enregistrement. L'événement Après suppression peut par exemple servir à appliquer des règles professionnelles ou des flux de travail, à mettre à jour un total agrégé et à envoyer des notifications.
Lorsque l'événement Après suppression se produit, les valeurs contenues dans l'enregistrement supprimé sont toujours disponibles. Vous pouvez utiliser une valeur supprimée pour incrémenter ou décrémenter un total, créer une piste d’audit ou comparer une valeur existante dans un argument WhereCondition .
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 à une valeur dans l'enregistrement supprimé en utilisant la syntaxe suivante.
[Old].[Field Name]
Par exemple, pour accéder à la valeur du champ QuantityInStock dans l'enregistrement supprimé, utilisez la syntaxe suivante.
[Old].[QuantityInStock]
Les valeurs contenues dans l'enregistrement supprimé sont supprimées de manière définitive lorsque l'événement Après suppression se termine.
Les commandes de macro suivantes peuvent être utilisées dans l’événement After Delete .
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 suppression, procédez comme suit.
Ouvrez la table pour laquelle vous souhaitez capturer l’événement Après suppression.
Sous l’onglet Table, dans le groupe Événements Après, cliquez sur Après suppression.
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 supprimé de la table Donations. Lorsqu'un enregistrement est supprimé, le montant d'un don est soustrait du champ DonationsReceived dans la table DonationsReceived et du 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 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 suppression.
Sous l’onglet Table, dans le groupe Événements Après, cliquez sur Après suppression.
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.
<?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