Partager via


Événement Form.Dirty (Access)

L'événement Dirty se produit lorsque le contenu du contrôle spécifié est modifié.

Syntaxe

expression. Dirty (Cancel)

expressionVariable qui représente un objetForm.

Parameters

Nom Requis/Facultatif Type de données Description
Cancel Obligatoire Entier Le paramètre détermine si l'événement Dirty se produit. La définition de l’argument Cancel sur True (1) annule l’événement Dirty .

Remarques

Quand vous tapez un caractère directement dans la zone de texte ou une zone de liste déroulante ou en modifiant la propriété Text du contrôle à l'aide d'une macro ou Visual Basic sont des exemples de cet événement.

Modification d'un enregistrement dans un formulaire à l'aide d'une macro ou Visual Basic ne déclenche pas cet événement. Vous devez taper les données directement dans l'enregistrement ou définir la propriété Text du contrôle.

Cet événement ne s'applique qu'aux formulaires liés, et non à un formulaire indépendant ou un état.

Pour exécuter une macro ou une procédure événementielle lorsque cet événement se produit, définissez la propriété OnDirty sur le nom de la macro ou [procédure événementielle].

En exécutant une macro ou une procédure événementielle lorsqu’un événement Dirty se produit, vous pouvez déterminer si l’enregistrement peut être modifié. Vous pouvez également afficher un message et demander la permission de modifier les données.

La modification des données d’un enregistrement à l’aide du clavier entraîne la survenue d’événements de clavier en plus des événements de contrôle comme l’événement Dirty . Par exemple, si vous vous placez sur un nouvel enregistrement et que vous tapez un caractère ANSI dans une zone de texte de l'enregistrement, les événements suivants se produisent dans cet ordre :

KeyDownKeyPressBeforeInsertDirtyKeyUp

Les événements BeforeUpdate et AfterUpdate d’un enregistrement se produisent après avoir entré les données nouvelles ou modifiées dans l’enregistrement et déplacé vers un autre enregistrement (ou choisissez Enregistrer l’enregistrement dans le menu Enregistrements ), et donc après l’événement Dirty pour l’enregistrement.

L’annulation de l’événement Dirty entraîne la restauration des modifications apportées à l’enregistrement actif. Cela équivaut à appuyer sur la touche Échap.

Exemple

L’exemple suivant active le bouton btnUndo lorsque les données sont modifiées. La sous-routine UndoEdits( ) est appelée à partir de l’événement Dirty des contrôles de zone de texte. Cliquez sur le bouton btnUndo activé pour restaurer la valeur d’origine du contrôle à l’aide de la propriété OldValue .

Private Sub Form_Dirty() 
 If Me.Dirty Then 
 Me!btnUndo.Enabled = True ' Enable button. 
 Else 
 Me!btnUndo.Enabled = False ' Disable button. 
 End If 
End Sub 
 
Sub btnUndo_Click() 
 Dim ctlC As Control 
 ' For each control. 
 For Each ctlC in Me.Controls 
 If ctlC.ControlType = acTextBox Then 
 ' Restore Old Value. 
 ctlC.Value = ctlC.OldValue 
 End If 
 Next ctlC 
End Sub

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.