Événement Form.ApplyFilter (Access)

Se produit lorsqu'un filtre est appliqué à un formulaire.

Syntaxe

expression. ApplyFilter (Cancel, ApplyType)

expressionVariable qui représente un objetForm.

Parameters

Nom Requis/Facultatif Type de données Description
Cancel Obligatoire Integer Le paramètre détermine si l'événement ApplyFilter se produit. Le fait de définir l'argument Cancel sur True annule l'événement ApplyFilter et l'application du filtre sur le formulaire.
ApplyType Obligatoire Integer Renvoie le type de filtre appliqué.

Remarques

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

Utilisez l’événement ApplyFilter pour :

  • Assurez-vous que le filtre appliqué est correct. Par exemple, vous pouvez être sûr que tout filtre appliqué à un formulaire Commandes inclut des critères limitant le champ OrderDate . Pour ce faire, vérifiez la valeur de la propriété Filter ou ServerFilter du formulaire pour vous assurer que ce critère est inclus dans l’expression de clause WHERE.

  • Modifier l'affichage du formulaire avant que le filtre ne soit appliqué. Par exemple, lorsque vous appliquez un certain filtre, vous voulez peut-être désactiver ou masquer des champs qui ne sont pas appropriés pour les enregistrements affichés par le filtre en question.

  • Annuler ou modifier les actions que vous avez effectuées lorsque l’événement Filter s’est produit. Par exemple, vous pouvez désactiver ou masquer certains contrôles sur le formulaire lorsque l’utilisateur crée le filtre, car vous ne souhaitez pas que ces contrôles soient inclus dans les critères de filtre. Vous pouvez ensuite activer ou afficher ces contrôles une fois que le filtre est appliqué.

Les actions dans la macro ou la procédure événementielle ApplyFilter se produisent avant l’application ou la suppression du filtre, ou après la fermeture de la fenêtre Filtre/Tri avancé, Filtrer par formulaire ou Filtrer par formulaire du serveur, mais avant que le formulaire ne soit réaffiché. Les critères que vous avez entrés dans le filtre nouvellement créé sont disponibles pour la macro ou la procédure événementielle ApplyFilter en tant que paramètre de la propriété Filter ou ServerFilter .

Remarque

L'événement ApplyFilter ne se produit pas lorsque vous effectuez l'une des opérations suivantes :

  • Applique ou supprime un filtre à l’aide des actions ApplyFilter, OpenReport ou ShowAllRecords dans une macro, ou de leurs méthodes correspondantes de l’objet DoCmd dans Visual Basic.
  • Utilise l’action Fermer ou la méthode Close de l’objet DoCmd pour fermer la fenêtre Filtre/Tri avancé, Filtrer par formulaire ou Filtrer par formulaire du serveur.
  • Définit la propriété Filter ou ServerFilter ou la propriété FilterOn ou ServerFilterByForm dans une macro ou Visual Basic (bien que vous puissiez définir ces propriétés dans une procédure événementielle ou une macro ApplyFilter ).

Exemple

L’exemple suivant montre comment masquer les contrôles AmountDue, Tax et TotalDue dans un formulaire Commandes lorsque le filtre appliqué limite les enregistrements aux seules commandes qui ont été payées.

Pour essayer cet exemple, ajoutez la procédure événementielle suivante à un formulaire Commandes qui contient les contrôles AmountDue, Tax et TotalDue. Exécutez un filtre qui n'affiche que les commandes réglées.

Private Sub Form_ApplyFilter(Cancel As Integer, ApplyType As Integer) 
 If Not IsNull(Me.Filter) And (InStr(Me.Filter, "Orders.Paid = -1")>0 _ 
 Or InStr(Me.Filter, "Orders.Paid = True")>0)Then 
 If ApplyType = acApplyFilter Then 
 Forms!Orders!AmountDue.Visible = False 
 Forms!Orders!Tax.Visible = False 
 Forms!Orders!TotalDue.Visible = False 
 ElseIf ApplyType = acShowAllRecords Then 
 Forms!Orders!AmountDue.Visible = True 
 Forms!Orders!Tax.Visible = True 
 Forms!Orders!TotalDue.Visible = True 
 End If 
 End If 
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.