IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

filtrer formulaire a l'aide d'une macro


Sujet :

IHM

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 200
    Points : 120
    Points
    120
    Par défaut filtrer formulaire a l'aide d'une macro
    Bonjour,

    Je ne suis pas un professionnel d'Access et je rencontre un problème.
    Je dispose d'un formulaire en mode continu basé sur une table clients. Dans ce formulaire, j'ajoute une liste déroulante nommée FilterPays, qui contient une série de valeurs (France, Allemagne, Mexique,...). Je souhaite filtrer le formulaire sur le champ Pays en fonction du choix effectué dans la liste déroulante FiltrerPays. Pour cela, je souhaite passer par une macro, et non par du code. J'ai créé la macro suivante que j'ai associée à l'évènement Après MAJ de la liste déroulante :

    AppliquerFiltre Condition Where : [Pays]=[Formulaires]![ListeClients]![FiltrerPays]
    AtteindreContrôle NomSociété

    Lorsque je teste le formulaire, il fonctionne quand je choisi un premier pays. mais ensuite il refuse de fonctionner si je change de pays dans la liste déroulante. La liste des clients reste bloquée sur le filtre du premier pays choisi. J'ai ajouté à la macro l'action Actualiser (sans argument), mais ça ne marche pas mieux. Quelqu'un aurait t'il une solution SVP ? Je précise que je ne souhaite pas utiliser du code, mais en rester à une macro.

    Merci d'avance
    Jean Noël

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    On va essayer de faire un petit pas en avant

    Tu fais une requête qui reprend tous les champs de ta table.

    Tu donne un nom à ta requête.

    Tu va dans les propriétés de ton formulaire et tu modifie la source de ton formulaire.

    Tu retourne dans la requête et dans le champ que tu veux utiliser pour filtrer les données, tu fais un clic droit sur la ligne critères.
    Tu obtiens un assistant assez intuitif.
    Tu navigue jusqu'au nom de ta liste déroulante.
    Une fois choisie, tu fais OK.
    Dans la ligne critère, tu remplace le "=" par "like".

    Tu retourne dans ton formulaire et dans ton combo, tu mets dans les propriétés en valeur par défaut "*".

    Tu vas dans la ligne AfterUpdate et tu clique sur le bouton qui contient trois point et tu choisis Générateur de Code.

    Tu tapes Voilà démystifié le VBA.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 200
    Points : 120
    Points
    120
    Par défaut filtrer formulaire a l'aide d'une macro
    Merci Heureux-Oli pour ton aide.
    J'avais pensé à l'utilisation d'une requête et je connais la méthode Requery. Mais je pense qu'il est possible de le faire sans utilisation de code. Juste en passant par une macro. Dans l'exemple de la base de données les comptoirs, il y a un formulaire qui s'appelle liste alphabétique des clients et qui permet de filtrer les clients selon la première lettre lettre de l'alphabet. Pour cela, ils n'utilisent qu'un macro et, chez eux, ça marche sans problème.

    Jean Noël

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    As-tu essayé ?

    J'ai quand même détaillé pas à pas ce que tu devais faire pour entrer dans le monde du VBA.

    Pour que ce soit possible avec chaque lettre, il faut mettre une action sur le KeyUp.

    Je vais aller voir dans les comptoirs.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 200
    Points : 120
    Points
    120
    Par défaut filtrer formulaire a l'aide d'une macro
    J'ai essayé ta méthode mais je n'arrive pas à la faire marcher. Quand je fais un clic droit dans la ligne critère de ma requête je n'ai pas d'assistant. Je suis sur Access 2000. Je suppose que tu veux me faire associer à la colonne sur laquelle porte le critère le nom du combo de mon formulaire. En tout cas, c'est ce que j'ai fait en utilisant le générateur d'expression mais mon formulaire dont j'ai modifié la source pour qu'elle corrseponde à ma requête, affiche une liste de clients désespérement vide.

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    C'est bien ce que je te propose de faire.
    C'est bien le générateur d'expressions.
    As-tu mis une * dans la valeur par défaut et mis like dans le critère.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 200
    Points : 120
    Points
    120
    Par défaut filtrer formulaire a l'aide d'une macro
    Oui, j'ai mis une * dans la valeur par défaut de mon combo
    Et j'ai mis Like au début de mon expression dans ma requête, ce qui me donne Comme [Formulaires]![essai]![FiltrerPays] (il a remplacé like par comme).
    Cependant mon formulaire reste vide, quel que soit le pays que je choisisse.

    Le Me.Requery je l'ai mis dans AfterUpdate de mon Combo. C'est bien cela ?

  8. #8
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Oui.

    Pourrais-tu mettre ta DB sur le forum ?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 200
    Points : 120
    Points
    120
    Par défaut Filtrer formulaire
    Voila, je viens de mettre un exemple en pièce jointe. Une seule table, une seule requête, un seul formulaire. Difficile de faire plus simple et pourtant mon formulaire ne marche pas.

    En tout cas, merci de ton aide

    Jean Noël

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 200
    Points : 120
    Points
    120
    Par défaut Filtrer Formulaire
    Je viens de m'apercevoir que mon exemple comporte une erreur. J'ai oublié de renommer mon combo. Mais même une fois corrigé, cela ne marche toujours pas.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 200
    Points : 120
    Points
    120
    Par défaut Filtrer Formulaire
    Oups, excuses moi. je viens d'arriver à faire marcher le formulaire. Cependant, si j'ose, j'aurai deux autres questions à te poser

    Dans un premier temps mon formulaire s'affiche vide. Comment faire en sorte qu'il s'affiche avec tous les clients

    Enfin, si je souhaite ajouter un autre filtre dans le formulaire (sans le combiner avec le pays), comment procéder ? Un combo qui filtre par pays et un autre qui filtre par ville, par exemple, dans ce cas sans tenir compte du pays.

    Merci encore pour l'aide que tu m'as apporté

    Jean Noël

  12. #12
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Voilà.

    Tu y étais presque.

    En fait, la source de ton combo n'était pas bonne, mais c'est un détail. Mais surtout, la position de ton combo.
    Tu dois le mettre soit dans l'entête du formulaire, soit dans le corps du formulaire (mauvaise idée).

    Pour le reste tu étais allé aux bons endroits.

    Voilà un pas en avant de fait.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 200
    Points : 120
    Points
    120
    Par défaut Filtrer formulaire
    Merci encore pour ton aide. Cependant il me semble que cette méthode comporte des inconvénients dont le plus embettant est qu'il n'autorise pas, enfin il me semble, la possibilité de filtrer sur plusieurs champs sans cumuler les filtres. De plus, au démarrage, le formulaire affiche une liste vide alors qu'il serait préférable qu'il affiche directement tous les clients. Je continu de penser qu'une méthode par macro, proche de celle utilisée dans le formulaire 'Liste alphabétique des clients', serait utilisable mais je n'arrive pas à l'appliquer

    Encore merci pour ton aide et merci aussi à tous ceux qui ont pris la peine de lire mes messages

    jean Noël

  14. #14
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Tu peux augmenter le nombre de champs filtrés à ta guise.

    Il suffit de modifier la requête en conséquence.

    La structure est très simple et les modifications assez aisées.

Discussions similaires

  1. [VBA-E]remplacer à l'aide d'une macro
    Par colombine28 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/03/2007, 05h47
  2. [VBA-E] Copier une macro dans un fichier à l'aide d'une macro
    Par Capsule dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/01/2007, 20h05
  3. Réponses: 5
    Dernier message: 30/08/2006, 12h04
  4. [VBA-E]Ouvrir une image jpg àl'aide d'une macro
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/03/2006, 09h47
  5. [VBA] Excell : demande d'aide pour une macro
    Par Fealendril dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/01/2006, 16h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo