Table of contents
TOC
Réduire la table des matières
Développer la table des matières

Méthode DoCmd.ApplyFilter (Access)

office 365 dev account|Dernière mise à jour: 20/11/2017
|
1 Contributeur

La méthode ApplyFilter exécute l'action ApplyFilter dans Visual Basic.

Syntaxe

expression . ApplyFilter( FilterName, WhereCondition, ControlName )

expression Variable qui représente un objet DoCmd.

Paramètres

NomObligatoire/FacultatifType de donnéesDescription
FilterNameFacultatifVariantExpression de type chaîne qui représente le nom valide d'un filtre ou d'une requête dans la base de données active. Quand vous utilisez cette méthode pour appliquer un filtre serveur, l'argument NomFiltre doit être vide.
WhereConditionFacultatifVariantExpression de type chaîne qui est une clause WHERE SQL valide sans le mot WHERE.
ControlNameFacultatifVariant

Remarques

Utilisez l'action AppliquerFiltre pour appliquer un filtre, une requête ou une clause WHERE SQL à une table, un formulaire ou un état afin de restreindre ou trier les enregistrements de la table ou les enregistrements de la table ou de la requête sous-jacente du formulaire ou de l'état. Dans le cas d'un état, utilisez cette action uniquement dans une macro spécifiée par la propriété de type événement OnOpen de cet état.

Vous pouvez utiliser cette action pour appliquer une clause WHERE SQL seulement lorsque vous appliquez un filtre serveur. Il n'est pas possible d'appliquer un filtre serveur à une source d'enregistrement d'une procédure stockée.

Remarque Utilisez l'argument NomFiltre si vous avez déjà défini un filtre qui fournit les données appropriées. Utilisez l'argument ConditionWhere pour entrer directement les critères de restriction. Si vous utilisez les deux arguments, Microsoft Access applique la clause WHERE aux résultats du filtre. Vous devez utiliser au moins un des deux arguments.

Vous pouvez appliquer un filtre ou une requête à un formulaire en mode Formulaire ou Feuille de données.

Le filtre et la condition WHERE que vous appliquez deviennent les paramètres de la propriété Filter du formulaire ou de la propriété ServerFilter du rapport.

Lorsque vous enregistrez une table ou un formulaire, Access enregistre les filtres actuellement définis dans cet objet, mais ne les appliquera pas automatiquement à la prochaine ouverture de l'objet (alors qu'il appliquera automatiquement le tri appliqué à l'objet avant son enregistrement). Pour appliquer un filtre automatiquement la première fois que vous ouvrez un formulaire, spécifiez une macro contenant l'action ApplyFilter ou une procédure d'événement contenant la méthode ApplyFilter de l'objet DoCmd en tant que paramètre de propriété d'événement OnOpen du formulaire. Vous pouvez également appliquer un filtre à l'aide de l'action OpenForm ou OpenReport ou des méthodes correspondantes. Pour appliquer un filtre automatiquement lorsque vous ouvrez une table pour la première fois, vous pouvez ouvrir la table à l'aide d'une macro contenant l'action OpenTable, suivie immédiatement par l'action ApplyFilter.

Vous devez inclure au moins un des deux arguments de méthode ApplyFilter. Si vous entrez une valeur pour les deux arguments, l'argument WhereCondition est appliqué au filtre.

L'argument ConditionWhere peut comporter jusqu'à 32 768 caractères (contrairement à l'argument de l'action Condition Where de la fenêtre Macro, dont la longueur ne peut excéder 256 caractères).

Exemple

L'exemple suivant utilise la méthode ApplyFilter pour afficher uniquement les enregistrements contenant le nom « King » dans le champ LastName :

DoCmd.ApplyFilter , "LastName = 'King'"

L'exemple suivant présente l'utilisation de la propriété ApplyFilter pour filtrer les enregistrements affichés lorsque l'utilisateur clique sur le bouton bascule nommé tglFilter.

Exemple de code fourni par : Bill Jelen, MrExcel.com

Private Sub tglFilter_Click()
    With tglFilter
        If .Value = True Then
            .Caption = "P/T"
            .StatusBarText = "only full-timers"
            DoCmd.ApplyFilter , "[Hours]=40"
        ElseIf .Value = False Then
            .Caption = "All"
            .StatusBarText = "only part-timers"
            DoCmd.ApplyFilter , "[Hours]<40"
        Else
            .Caption = "F/T"
            .StatusBarText = "all employees"
            DoCmd.ShowAllRecords
            .SetFocus 'to activate the button's statusbar-text
        End If
    End With
End Sub

À propos des collaborateurs

Holy Macro! Books publie des livres divertissants pour les personnes qui utilisent Microsoft Office. Vous pouvez consulter le catalogue complet sur MrExcel.com.

Voir aussi

Concepts

Objet DoCmd

Autres ressources

© 2018 Microsoft