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

Access Discussion :

Filtrer selon la sélection d'un menu déroulant


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 15
    Points
    15
    Par défaut Filtrer selon la sélection d'un menu déroulant
    Je n'arrive pas sur plusieurs bases, à trouver cette solution.
    Je contourne la solution en faisant "filtrer par sélection" au bouton droit dans une feuille de données, mais cela n'est disponible que pour l'administrateur, et pour les base partagées il n'y a rien.



    Je souhaite appliquer un filtre au formulaire à partir de la valeur qui a été sélectionner dans le menu déroulant.

    exemple sur une base bidon de DVDthèque :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Modifiable30_AfterUpdate()
    Forms("Collection vidéo").Filter = "[Genre]=" & Str(Nz(Me![Modifiable30], 0))
    Forms("Collection vidéo").FilterOn = True
    End Sub
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Modifiable30_AfterUpdate()
    Me.Filter = "[Genre]=" & Str(Nz(Me![Modifiable30], 0))
    Me.FilterOn = True
    End Sub

    Où [Genre] est le champ du formulaire à filtrer selon le menu déroulant, mais ça ne marche pas...


    Quelqu'un est il interpellé par celà ?

    La solution réside t elle dans un "recordset" ? Si oui, comment cela fonctionne t il ?

  2. #2
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    salut,

    ce que tu veux faire est assez classique comme manip. une recherche sur le forum te donnerais sans doute des solutions.

  3. #3
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par Frollo
    Je n'arrive pas sur plusieurs bases, à trouver cette solution.
    Je contourne la solution en faisant "filtrer par sélection" au bouton droit dans une feuille de données, mais cela n'est disponible que pour l'administrateur, et pour les base partagées il n'y a rien.



    Je souhaite appliquer un filtre au formulaire à partir de la valeur qui a été sélectionner dans le menu déroulant.

    exemple sur une base bidon de DVDthèque :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Modifiable30_AfterUpdate()
    Forms("Collection vidéo").Filter = "[Genre]=" & Str(Nz(Me![Modifiable30], 0))
    Forms("Collection vidéo").FilterOn = True
    End Sub
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Modifiable30_AfterUpdate()
    Me.Filter = "[Genre]=" & Str(Nz(Me![Modifiable30], 0))
    Me.FilterOn = True
    End Sub

    Où [Genre] est le champ du formulaire à filtrer selon le menu déroulant, mais ça ne marche pas...


    Quelqu'un est il interpellé par celà ?

    La solution réside t elle dans un "recordset" ? Si oui, comment cela fonctionne t il ?
    essaye de mettre apres
    ca permet normalement de mettre a jour les enregistrements. mais j'ai eu moi aussi dernierement des problemes avec les filtres access et c'est parti je sais pas trop comment...

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 388
    Points : 19 811
    Points
    19 811
    Billets dans le blog
    66
    Par défaut
    ton champs [genre] dans ta table source est bien du type numérique ???

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    Ne change rien au problème.
    Je me doute que ce doit être un problème classique, mais je n'ai rien trouvé qui résolve cela, ni dans l'aide en ligne, ni chez FAQ Access, et l'aide chez Microsoft est trop complexe pour une simple question.

    Je retrouve pas l'explication pour filtrer avec un recordset... Je pense que ce doit être plutôt là...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    [genre] est du type texte dans sa base (liste des genres)
    [genre] est de type texte également dans le jeu d'enregistrements (Collection vidéo)

    Dans le formulaire, c'est un menu déroulant, il n'a pas de format (?)


    Pourquoi faut il qu'il soit numérique ? Ne filtre t on pas un texte pour un texte dans l'exemple cité ?

  7. #7
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 388
    Points : 19 811
    Points
    19 811
    Billets dans le blog
    66
    Par défaut
    si c'est 1 texte ajoute les ' :

    cela a déja été mentionné plusieurs fois sur ce forum:

    Essaie donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Modifiable30_AfterUpdate()
    Me.Filter = "[Genre]='" & Nz(Me![Modifiable30], "") & "'"
    Me.FilterOn = True
    End Sub

    @+

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    Mmmmh... Marche pas, apparemment y'a un problème de sous formulaire : je continue à chercher dans ce sens.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Modifiable13_AfterUpdate()
    Forms("table des pièces").Filter = "[Fournisseur]='" & Nz(Me![Modifiable13], "") & "'"
    Forms("table des pièces").FilterOn = True
    End Sub
    Dans cet exemple, mon sous formulaire s'appelle "table des pièces sous-formulaire"

    ...

  9. #9
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 388
    Points : 19 811
    Points
    19 811
    Billets dans le blog
    66
    Par défaut
    Salut,

    ca change tous les jours les hypothèses

    tu ne facilites pas la tache de ceux qui souhaite t'aider ..

    si ton sous formulaire s'appelle "table des pièces sous-formulaire" et que ta liste modifiable est dans ton form principal, alors tu fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Modifiable13_AfterUpdate()
    Me("table des pièces sous_formulaire").form.Filter = "[Fournisseur]='" & Nz(Me![Modifiable13], "") & "'"
    Me("table des pièces sous_formulaire").form.FilterOn = True
    End Sub

    @+

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    Arggggggh ! je deviens fou ! y'a rien qui marche !!!
    Du calme, repartons à zéro...
    Laissons tomber les sous formulaires, ça marche encore moins... En fait aucun ne marche...
    Quelqu'un peut me confirmer un menu déroulant qui filtre la table liée au formulaire opérationnel, ainsi que la méthode ?


    En fait, quelque chose m'interpelle : ce que je cherche à faire c'est le "filtrer par sélection" du bouton droit dans un champ à partir d'un nouveau menu déroulant ; mais dans ce cas là, à la souris, la fonction est grisée (inactive)

  11. #11
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 388
    Points : 19 811
    Points
    19 811
    Billets dans le blog
    66
    Par défaut
    Le mieux c'est que tu comprenne le code, pour identifier par toi même ce qui ne va pas,
    Reprenons donc le filtre sur le formulaire à partir de la liste modifiable:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Modifiable30_AfterUpdate()
    Me.Filter = "[Fournisseur]='" & Nz(Me![Modifiable30], "") & "'"
    Me.FilterOn = True
     
    End Sub

    ce code veut dire que tu as une table source de ton formulaire qui contient un champs [Fournisseur] et quand tu mets à jour ta liste tu filtre la source de ton formulaire (sur le champs [fournisseur]) en fonction de la valeur contenue dans ta liste modifiable.

    Dans ta liste modifiable verifie les propriétés "nombre de colonnes", "Colonne liée): la colonne lié va contenir la valeur de ta liste ...


    @+

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 15
    Points
    15
    Par défaut Allléluiah !
    Un morceau de code qui marche à la maison !

    Mes erreurs :
    - appliquer le filtre en désignant bien le sous formulaire (vu dans un autre post) - appellation confuse dans mon cas
    - vérifier le format de ce que le menu déroulant prend comme valeur
    - bien vérifier la valeur prise pour le filtre dans la requête du menu déroulant : la colonne liée est le champ de la requête qu'il va afficher
    - bien différencier la valeur numérique (clé), d'une valeur texte (vu précédemment avec " ' ")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Modifiable9_AfterUpdate()
    Forms![table des pièces].Form![table des pièces].Form.Filter = "[Engin]=" & Nz(Me![Modifiable9], 0)
    Forms![table des pièces].Form![table des pièces].Form.FilterOn = True
    End Sub

    Ca marche pour moi ! Je vérifie demain au boulot, et normalement plus rien de m'arrête pour marquer enfin RESOLU sur ce problème qui doit être fréquent !!!

    Merci à tous pour vos aides et votre patience

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/04/2008, 11h28
  2. Apparition d'une zone de texte lors de la sélection d'un menu déroulant
    Par head_hunter dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 13/04/2008, 13h26
  3. Réponses: 12
    Dernier message: 10/07/2007, 17h43
  4. Réponses: 11
    Dernier message: 10/04/2007, 07h02
  5. Réponses: 5
    Dernier message: 15/08/2006, 16h51

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