Bonjour à vous tous,
Encore une fois j'aurais besoin d'un expert pouvant m'aider à résoudre mon problème qui n'est peut-être pas si difficile que ça, je ne suis qu'un simple débutant en programmation.
J'ai réussi à trouver un code pouvant me permettre d'afficher dans une zone de liste les différents choix disponibles dans ma table selon la colonne que je lui ai indiqué.
Par exemple, quand je clique sur un ou plusieurs choix de ma première zone de liste (= aux choix possible de ma 1ère colonne dans mon unique table "plein texte"), la 2e liste prends les valeurs de la 2e colonne de mon unique table "plein texte", mais ces valeurs dépendent des valeurs sélectionnés dans ma première zone de liste. (C'est beaucoup de virgule pour une seule phrase, mais bon....).
Ceci est dans le but de permettre la sélection multiple en cascades. Jusqu'à maintenant, le code que j'ai donné à mes zones de listes fonctionnent très bien. Là où il y a problème, c'est que les données qui sont présentent plusieurs fois dans ma table ne sont pas regroupées dans ma liste. Par exemple, j'ai 4 compagnies qui vendent des produits dans un certain secteur commercial, il peut arriver que plusieurs produits dans chacune des compagnies fassent partie de segments identiques (par exemple, Nike, Addidas et NewBalance fabriquent tous les 3 des espadrilles dans le segment SPORTIF, etc). C'est à ce moment qu'on peut constater le problème, puisque lorsque je sélectionne Nike et Addidas, la zone de liste SEGMENT va présenter toutes les valeurs "SPORTIF, DELUXE, etc" de chacune des compagnies....donc s'il y en a 3000, la zone de liste aura 3000 valeurs....et moi je ne veux pas répéter ces valeurs. Si quelqu'un sait comment adapter le code que j'ai généré j'en serais ravi! J'espère que mes explications étaient complètes. Voici maintenant le code qui m'aide relativement à mettre en place mon projet.
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 Private Sub Liste0_Click() ' Lorsque je clique voici ce qui se passe Dim Q As String 'Sélectionne la colonne Segment de la table Prix Q = "SELECT Segment FROM tbl_Prix WHERE (false)" For i = 0 To Liste0.ListCount - 1 If Liste0.Selected(i) Then Q = Q & " OR (Compagnie='" & Liste0.Column(0, i) & "')" End If Next i Liste2.RowSource = Q 'La liste 2 prendra les valeurs de Q Liste2.Requery 'La liste 2 se rafraichira sur chaque clic End Sub
Partager