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 :

Appliquer un filtre depuis liste déroulante


Sujet :

Access

  1. #1
    Membre actif Avatar de samlepiratepaddy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 320
    Points : 217
    Points
    217
    Par défaut Appliquer un filtre depuis liste déroulante
    Slt,
    Je n'arrive pas mettre en place un filtre sur mon form en continu !
    J'ai ajouter a ce formulaire en entete, une liste déroulante qui retrace les valeurs d'un des champs de ce formulaire qui est en continu.
    Avec un regroupement je me retrouve donc avec quatres ou cinq choix dans cette liste et un VIDE (il me le faut!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Modifiable29_AfterUpdate()
        ' Rechercher l'enregistrement correspondant au contrôle.
        Dim rs As Object
     
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[RésultatAppel] = '" & Me![Modifiable29] & "'"
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
    End Sub
    Je souhaiterai que lorsque je choisi une des valeurs de cette liste, que les enregistrements qui n'ont pas cette valeur disparraissent du formulaire, mais au lieu de ça il me "pointe" juste un des enregistrements qui a cette valeur
    Je m'y prend mal ou quoi???
    Les filtres c'est pas mon truc et je ne trouve pas dans la FAQ quelque chose qui pourrai faire ça...
    J'ai essayé aussi du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Appliquer_mon_filtre_Click()
    Dim vFiltre As String
    vFiltre = Modifiable29
    DoCmd.ApplyFilter , vFiltre
    End Sub
    Mais il me dit
    L'action appliquerFlitre requiert que l'argument 'Nom filtre' ou 'Ou Condition' soit paramétré
    Bref le trou noir..
    en plus en passant par un bouton puis-je faire un AllRecord après???
    Quelqu'un a une idée??
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    les filtres c'est bien, mais pourquoi ne pas faire à l'identique de la recherche multicritères ?

    C'est à dire, modifier dynamiquement le SQL sous-jacent de ton formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.RecordSource = strSQL
    Me.Requery

  3. #3
    Membre actif Avatar de samlepiratepaddy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 320
    Points : 217
    Points
    217
    Par défaut
    Slt Cafeine,
    D'accord avec toi mais la requete source est déja longue a ouvrir alors si je la relance en la modifiant, je pense que cela va alourdir l'exploitation !
    D'ou, pour simplement faciliter le visuel du formulaire d'utiliser un filtre !
    Comme dans la barre d'outil "filtré par selection" , on positionne le focus sur le champ ou comme demandé sur le post précédent suivant la valeur d'une liste , puis sur le bouton "filtrer" et quand on veut tout vois un autre bouton avec "ShowAllRecords"..
    Comme ça je ne pense pas relancer cette requete qui n'est pas longue (7à10 secondes quand même..) mais ça 100 à 200 fois par jours Galère !
    Et bien je ne sais pas faire ce fameux "filtrer par selection" en VBA sur un bouton

  4. #4
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Salut, essaye ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Modifiable29_AfterUpdate() 
    DoCmd.ApplyFilter "", "[RésultatAppel] = '" & Me.Modifiable29 & "'"
    End sub

  5. #5
    Membre actif Avatar de samlepiratepaddy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 320
    Points : 217
    Points
    217
    Par défaut
    Slt Faw,
    nickel !! ça filtre nickel !!
    Mais deux petites choses :
    J'avais avant ma liste qui était alimentée par le regroupement des [ResultatAppel] présent dans mon formulaire et donc j'avais des vides !
    Mais elle était très longue a ouvrir !!
    Alors je lui ai mis en Source les différents Résultats possibles depuis ma T_RésultatAppel !
    Beaucoup plus rapide !!
    Mais je n'ai plus de vide !

    1/Comment je fais pour pouvoir filtrer les "Vides"
    2/Comment je fais pour retrouver l'ensembles des enregistrements sachant que c'est un formulaire filtré a l'ouverture par IdSalarié ??

    J'ai essayé ShowAllRecord.. ça marche mais je perd le filtre IdSalarié.

    Pufff toujours un truc qui fait chi... l'autre !

  6. #6
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    ShowAllRecord affichera tous les enregistrements de LA source, donc c'est
    normal que ça retourne tous les salariés.
    Pas le choix, si tu as besoin de tous les appels d'un salarié, il faudra
    RéAppliquer un filtre sur idSalarié cette fois.

    Pour ton problème de Vides, je n'ai pas compris désolé...

  7. #7
    Membre actif Avatar de samlepiratepaddy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 320
    Points : 217
    Points
    217
    Par défaut
    Re,
    Bon en fin de compte je laisse tomber cette solution qui n'est qu'un paliatif a un autre problème : Ma requete qui met 10 secondes a s'ouvrir sachant quelle sera utiliser 3000 fois par jours !!!!
    PAs possible de continuer comme ça !
    Je ne sais toujours pas réaliser ce genre de liste "interactive" l'une pour l'autre mais je me pencherai sur le sujet plus tard, car pour le moment il faut que je trouve un autre moyen pour supprimer la lenteur de cette requete !

    Car je pense que la réelle soluce est ailleurs !
    Merci a vous @+

Discussions similaires

  1. [AC-2000] filtre sur liste déroulante
    Par akiles dans le forum IHM
    Réponses: 1
    Dernier message: 17/08/2009, 14h55
  2. filtre sur liste déroulante dynamique
    Par Sami Xite dans le forum Access
    Réponses: 2
    Dernier message: 06/05/2008, 06h37
  3. filtre et liste déroulante
    Par Laura-c dans le forum Excel
    Réponses: 2
    Dernier message: 04/03/2008, 09h33
  4. Réponses: 4
    Dernier message: 04/05/2007, 12h23
  5. filtre dans liste déroulante ?
    Par Mario Rousson dans le forum Access
    Réponses: 2
    Dernier message: 04/02/2006, 16h53

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