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 :

Filtres sur liste de choix [AC-2013]


Sujet :

IHM

  1. #1
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut Filtres sur liste de choix
    Hello,

    j'ai créé un form basé sur une table, qui contient des champs d'autres tables. La table peut contenir, pour la plupart des champs, plusieurs valeurs.

    Cela fonctionne bien, le formulaire m'a créé des listes de cases à cocher multiples, et les données sont bien insérées dans la table.

    Je voudrais un form idépendant, qui me serve de filtre à choix multiples, mais je ne trouve pas de contrôle qui me permette cela. Je cherche donc une zone de liste de cases à cocher, comme dans mon form de saisie, mais lui me le propose du fait qu'il est basé sur la table.

    Pas certain d'être très clair, alors voici mon form basé sur la table qui contient les champs :

    Nom : Sans titre.png
Affichages : 1085
Taille : 5,3 Ko

    J'aimerai donc créer un form indépendant pour avoir les mêmes zones qui me serviraient de filtre pour un traitement.

    Merci

  2. #2
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    Personne n'a d'idée sur le comment faire une telle zone de liste à choix multiples (cases à cocher) dans un form indépendant ?

    Merci

  3. #3
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    En glanant un peu, je crois que le controle ListView permettrait -peut-être- cela.

    Mais je ne l'ai pas dans la liste des controles activeX et ne sait quelle réf cocher. Une idée ?

    Ou toute autre astuce pour arriver à ce que je veux faire (filtrer depuis des zones de listes).

    Merci

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 769
    Points : 14 810
    Points
    14 810
    Par défaut
    Bonjour,
    Je voudrais un form idépendant, qui me serve de filtre à choix multiples, mais je ne trouve pas de contrôle qui me permette cela.
    Une zone de liste permet un choix multiple c'est l'icone entourée :
    Nom : Zdl.JPG
Affichages : 953
Taille : 29,7 Ko

    il n'y aura pas de case à cocher mais pas de problème, les items sélectionnés apparaissent surlignés et sont sélectionnables ou désélectionnables à chaque clic :

    Nom : ZdListe.JPG
Affichages : 883
Taille : 16,0 Ko

  5. #5
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    Merci, j'avais trouvé cette solution.

    Maintenant, j'aimerais une requête avec comme critère les élements sélectionnés dans cette liste, mais cela ne fonctionne pas.

    Merci

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 769
    Points : 14 810
    Points
    14 810
    Par défaut
    Merci, j'avais trouvé cette solution.
    Ce n'était pas clairement indiqué dans tes propos.
    Maintenant, j'aimerais une requête avec comme critère les élements sélectionnés dans cette liste, mais cela ne fonctionne pas.
    Qu'est-ce qui ne fonctionne pas ? Peux-tu être plus précis ou montrer un bout de ton code, à défaut ?

  7. #7
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    Merci,

    si dans ma requête je mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT t_organisme.ci_organisme, t_organisme.type
    FROM t_organisme
    WHERE (((t_organisme.type.Value) Like [formulaires]![f_filtre]![listetype]));
    Où f_flitre est le formulaire qui contient une zone de liste à sélection multiple nommée listetype

    La requête ne retourne rien...

    Merci

  8. #8
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    Il y a quelque chose que je ne maitrise pas dans ces zones multiples dans les tables.

    J'ai comme (entre autres) tables :
    t_organisme(#ci_organisme, type) ou type est numérique et clé de la table :
    t_type(#ci_type, type)

    Mais dans ma table t_organisme, malgré le champ 'type' de type numérique, les champ sont affichés comme texte...

    A+

  9. #9
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 769
    Points : 14 810
    Points
    14 810
    Par défaut
    Bonsoir,
    Mais dans ma table t_organisme, malgré le champ 'type' de type numérique, les champ sont affichés comme texte...
    C'est probablement lié à la structure des champs multivalués qui ne sont rien d'autre, je pense que des tableaux.
    Personnellement, je n'ai jamais utilisé les champs multivalués et je m'en porte pas plus mal.
    Pur construire ton filtre, je te conseillerai plutôt d'utiliser In() que Like plus facile à construire en VBA.
    A essayer sous la condition que cela fonctionne avec un champ multivalué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim  strSql as String
    Dim strFiltre as String
    Dim varItm as Variant
     
        For Each varItm In [formulaires]![f_filtre]![listetype].ItemsSelected       
           strFiltre = strFiltre & IIf(strFiltre = "", """", ",""") & ([formulaires]![f_filtre]![listetype].ItemData(varItm)) & """"    
        Next varItm
     
        strFiltre = " In(" & strFiltre & ")"
     
        strSql = "SELECT t_organisme.ci_organisme, t_organisme.type FROM t_organisme " 
        strSql = strSql & "WHERE t_organisme.type.Value " & StrFiltre & ";"

  10. #10
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    Merci, du coup, obligé de passer par du vba.

    Vu que j'ai une dizaine de liste à sélection multiples pour le filtre, c chaud.

    Dis voir, une question :
    sous access 2003, je pouvais faire un form "menu" et l'afficher à n'importe quelle taille. Là sous 2013, j'ai beau jouer avec les modale ou contextuelle, soit mon form de menu est en plein écran, soit il reste en premier plan. Une idée ?

    C'est un form basique sur lequel j'ai mis des boutons pour ouvrir d'autres forms, rien de spécial.

    Merci

  11. #11
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    Je ne peux pas le dimensionner. Soit il est en plein écran, soit en fenêtre contextuelle et dans ce dernier cas, il reste en premier plan.

    C'est forcément un truc con, mais je me bagarre avec cela.

    Merci

  12. #12
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    Je me réponds à moi-même. Au lieu de me battre avec les options du form, j'aurais mieux fait d'aller voir les options générales de la base...

    Ceci, c'est ok du coup !

    Je te tiens au courant quand j'en aurai fini avec les filtres !!!

    A+

  13. #13
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    Bon, tout à l'air ok, mais maintenant, j'ai un autre souci.


    Donc, j'arrive à afficher un form indépendant avec un filtre multicritères.

    J'aimerai dorénavant créer un recordset des éléments de ce form, et là je bloque, vu que le form affiche les enregistrements sur un flitre créé par vba.

    Comment puis-je parcourir ce form ? Le mieux serait une table temporaire, mais je ne vois pas comment rajouter les enregistrements du form filtré à cette table.

    Suis-je clair ?

    Merci

  14. #14
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    C'est bon, résolu.

    Sur mon form qui m'affiche les résultats filtrés, j'ai mis un bouton. Je me suis aussi servi d'une table temporaire.

    Voici le code, s'il peut servir à d'autres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    DoCmd.SetWarnings (False) 'on empêche les messages de confirmation de Access
     
    DoCmd.OpenQuery "r_suppression_table_temporaire" 'on efface la table temporaire
     
    Dim rs As DAO.Recordset
    Set rs = Me.RecordsetClone 'on ouvre les enregistrements du form (me)
     
    On Error Resume Next 'pour éviter les messages d'erreur si souci
     
    rs.MoveLast ' pour connaitre le nb d'éléments
    rs.MoveFirst ' on se remet sur le 1er
    'MsgBox rs.RecordCount'debug
     
    Dim ts As Recordset
    Set ts = CurrentDb.OpenRecordset("table_temporaire", DB_OPEN_DYNASET)
     
    While Not rs.EOF 'tant qu'il y a des enregistremets dans le form
    ts.AddNew 'on ouvre la table en mode ajout
    ts!code_Organisme = rs!ci_organisme 'on ajoute à table_temporaire les éléments filtrés du form
    ts.Update 'on met à jour la table
     
    rs.MoveNext 'on passe à l'autre enregistrment
     
    Wend 'fini, il n'y en a plus, la table est remplie :)
    Voilà.

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

Discussions similaires

  1. Aide Filtre sur Liste
    Par yacko83 dans le forum Excel
    Réponses: 1
    Dernier message: 01/06/2007, 13h03
  2. filtre sur liste modifiable.Help!!!
    Par VBBBA dans le forum Access
    Réponses: 7
    Dernier message: 18/09/2006, 15h15
  3. Filtre sur liste
    Par Gabrieel dans le forum Access
    Réponses: 5
    Dernier message: 23/05/2006, 02h46
  4. Requête, tri sur liste de choix
    Par seb.kepka dans le forum Access
    Réponses: 1
    Dernier message: 15/05/2006, 14h47
  5. Réponses: 2
    Dernier message: 26/10/2005, 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