Bonjour,
Je suis entrain de travailler sur un formulaire Access avec plusieurs ListBox a choix multiples qui dépendent les une des autres pour mettre a jour leur liste de valeur . Et ensuite selon les critères sélectionnés j'effectue une requête dans mes tables.
Avant de passer au choix multiples j'étais sur des liste déroulantes et cela fonctionnerai parfaitement mais pour une seule sélection par liste .
J'avais des choses qui ressemblaient a ça, donc après chaque MAJ d'une liste déroulante, je récupérerai les valeurs des autres listes pour les mettre en tant que condition . Donc cela fonctionnait très bien je pouvais donc appliqué une séléction par liste sans soucis.
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 If Nz(liste_d_artcicle, "") = "" Then condi_article = "1=1" Else condi_article = nom_article & " LIKE '" & val_article & "'" If Nz(liste_d_local, "") = "" Then condi_loc_ddm = "1=1" condi_loc_nmc = "1=1" Else condi_loc_ddm = nom_local_ddm & " LIKE '" & val_local & "'" condi_loc_nmc = nom_local_nmc & " LIKE '" & val_local & "'" End If If Nz(liste_big, "") = "" Then condi_big_ddm = "1=1" condi_big_nmc = "1=1" SQL_big_nmc = " SELECT DISTINCT " & nom_table_nmc & "." & nom_big_nmc & " FROM " & nom_table_ddm & " INNER JOIN " & nom_table_nmc & " ON " & nom_table_ddm & "." & nom_ri_ddm & "=" & nom_table_nmc & "." & nom_ri_nmc & " WHERE " & condi_cmx_nmc & " AND " & condi_loc_nmc & " AND " & condi_code_nmc SQL_code_nmc = " SELECT DISTINCT " & nom_table_nmc & "." & nom_code_nmc & " FROM " & nom_table_ddm & " INNER JOIN " & nom_table_nmc & " ON " & nom_table_ddm & "." & nom_ri_ddm & "=" & nom_table_nmc & "." & nom_ri_nmc & " WHERE " & condi_cmx_nmc & " AND " & condi_loc_nmc & " AND " & condi_big_nmc
J'ai ensuite eu la nécessité de vouloir sélectionné plusieurs item d'une même liste dans chacune d'elle et c'est la que je ne sais comment résoudre le problème.
Je suis donc passer a ce type de code la :
Cela me permet donc de pouvoir sélectionné plusieurs item d'une même liste et donc d'afficher dans les autres listes l'ensemble des valeurs avec la somme de toutes les conditions MAIS cela ne fonctionne que sur une seule liste a la fois et c'est la tout le problème . Si je souhaite avoir des filtres sur plusieurs ça ne fonctionne pas car a l’exécution les ancien item sélectionné de la liste ne le sont plus et donc n'interviennent plus dans les conditions.
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 If Me.liste_d_techno2.ItemsSelected.Count <> 0 Then For Each itm In Me.liste_d_techno2.ItemsSelected ' parcourt les items LstVal_techno = LstVal_techno & IIf(LstVal_techno = "", "(", " OR ") & nom_techno & " LIKE '*" & Me.liste_d_techno2.ItemData(itm) & "*'" ' insère chaque id dans la variable Next LstVal_techno = LstVal_techno & ")" Else LstVal_techno = "1=1" End If If Me.liste_d_big2.ItemsSelected.Count <> 0 Then For Each itm In Me.liste_d_big2.ItemsSelected ' parcourt les items LstVal_big = LstVal_big & IIf(LstVal_big = "", "(", " OR ") & nom_big_tuyaux & " LIKE '*" & Me.liste_d_big2.ItemData(itm) & "*'" ' insère chaque id dans la variable Next LstVal_big = LstVal_big & ")" Else LstVal_big = "1=1" End If SQL_local = "SELECT DISTINCT " & nom_table_tuyaux & "." & nom_local_tuyaux & " FROM " & nom_table_tuyaux & " INNER JOIN " & nom_table_nmc & " ON " & nom_table_tuyaux & "." & nom_ri_tuyaux & "=" & nom_table_nmc & "." & nom_ri_nmc & " WHERE " & LstVal_big & " AND " & LstVal_diametre & " AND " & LstVal_techno
Pour être plus clair voici en image sur une sélection de deux liste le soucis que je rencontre .
Aucune séléction
Séléction multiples de la liste 1 qui met bien a jour la liste deux avec les items sélectionnés
Et la choix d'un item dans la liste 2 juste après le choix de la liste 1, la liste 1 est bien mise a jour mais impossible d'avoir en même temps ma séléction sur mes deux listes.
J'ai par la suite tenté de chercher a résoudre le soucis a chaque MAJ d'une liste je souhaiterai récupérer l'ensemble des items sélectionnés, stocker leur valeur dans un tableau, puis une fois les autres listes misent a jour vérifié si les items sélectionnés y sont présent, si tel est le cas les sélectionner.
Voila, je suis désole de la grosseur du message, je ne sais même pas si le soucis est bien visible mais je remercie chaque personne qui pourra y consacrer un peu de temps, si certaines choses ne sont pas claires, je peux donner plus de détails .
Peut être qu'il existe une solution plus simple pour effectuer des
Choix multiples interdépendant entre eux
Maxcou
Partager