Liste de listes déroulantes

Fermé
Signaler
-
 starnours -
Bonjour,
Sur une liste déroulante, mon programme crée une liste de liste déroulante. Ce que je cherche à faire, c'est de naviguer sur chaque élément "voyant" de la liste (de liste déroulante) et de les prendre un par un pour les concaténer les uns aux autres.

Pour récuperer le premier élement du premier champ (en hauteur) de la liste, je fais :
Forms![Form Modification des lignes]![SF Association Fiche Caisse]![Véhicule].Column(1)

mais pour recuperer les autres en dessous, comment faire? une idée?

12 réponses

Messages postés
23779
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 décembre 2021
3 148
Salut,

on suppose que c'est de l'access, hein ?

la propriété column d'une liste déroulante peut prendre deux valeurs : le numéro de la colonne et le numéro de la ligne.

Forms![Form Modification des lignes]![SF Association Fiche Caisse]![Véhicule].Column(1,1)
Forms![Form Modification des lignes]![SF Association Fiche Caisse]![Véhicule].Column(1,2)
Forms![Form Modification des lignes]![SF Association Fiche Caisse]![Véhicule].Column(1,3)
ok, mais avec ca :
Forms![Form Modification des lignes]![SF Association Fiche Caisse]![Véhicule].Column(1,3),
je vais récuperer le 3ième champ de ma première liste déroulante (n'oublions pas qu'il s'agit d'une liste de liste déroulante).
Or, quand je fais ...Column(1), sans en connaitre la raison, il me prend la case "voyante" qui est en fait ce que l'on voit dans mon premier champ "déroulant" (dira-t-on). Et ce que je cherche à faire, c'est de prendre ...column(1) de chaque champ voyant de ma liste principal (est-ce clair?).

Par exemple, j'ai crée un bouton qui me permet d'afficher le contenu (avec le ...column(1)). Et je peux, en placant le focus sur chacun des champs de ma liste les afficher comme je le souhaite, mais je voudrais faire ca automatiquement. Est il possible de depacer le focus parmis les champs d'une telle liste?
dites le moi si c'est aps clair
Si je tape ca :
MsgBox Forms![Form Modification des Lignes]![SF Association Fiche Caisse]![Véhicule].ListCount
je vais avoir droit un nombre de ligne de la liste déroulante (qui est en fait le premier champ de ma liste "principal'. Comment faire pour obtenir la longueur totale de ma 'liste principale', c-a-d le nombre de liste déroulante de la "liste principale"???? (ok, j'avou, en relisant... ca peut paraitre confu)
personne?
Messages postés
23779
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 décembre 2021
3 148
Je ne cromprends rien ! comment fais-tu pour créer des listes de listes ? c'est quel type d'objet ?
Sérieusement, j'ai du mal à voir, dans le code (à l'origine, c'est pas moi qui l'est codé) , il s'agit juste d'une liste déroulante et une fois éxécuté, en fonction du résultat d'une requête, et bien le programme affiche les résultats dans plusieurs listes déroulantes collées les unes aux autres tel une liste (En sachant que le résultat qui est affiché pour chaque ligne correspond à un élément des listes déroulantes (qui sont bien évidement les même).
Messages postés
23779
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 décembre 2021
3 148
Il n'y a pas d'objet 'liste de listes'. Chaque objet possède un nom, et c'est à partir de ce nom que l'on peut accéder aux infos contenues dans cet objet.

et bien le programme affiche les résultats dans plusieurs listes déroulantes collées les unes aux autres tel une liste
On a bien n listes, si tu veux avoir un élément d'une liste en particulier, c'est nom_liste.column(x,y)
Quand je fais :
MsgBox Forms![Form Modification des Lignes]![SF Association Fiche Caisse]![Véhicule].Column(1),
il m'affiche le résultat affiché dans le champ (par default, le premier champ de ma liste générale, mais ca depend, on peut très bien, en cliquant sur un champ faire de même pour afficher le résultat à l'aide d'un bouton générant le code ci-dessus )

Si je fais :
MsgBox Forms![Form Modification des Lignes]![SF Association Fiche Caisse]![Véhicule].Column(0, 1)
MsgBox Forms![Form Modification des Lignes]![SF Association Fiche Caisse]![Véhicule].Column(1, 1)
...
et bien je vais obtenir les valeurs à l'intérieur de la liste déroulante et non pas les valeurs de ma liste principal. en gros, avec ces commandes, je peux 'naviguer dans chaque liste déroulante de ma liste en fonction de là où j'ai le focus (en cliquant grace à la souris) mais je ne peux pas "naviguer dans ce qui semble être pour moi la liste de liste (ce que j'appel ma liste principal)

En regardant le code de mon champ liste, c'est bien une liste déroulante qui a comme source de controle un attribut d'une table, qui a comme origine source une Table/Requete et son contenu est une belle requête :

SELECT DISTINCTROW VehiculeAntoine.[id_ Véhicules], VehiculeAntoine.cNomVéhicule FROM VehiculeAntoine WHERE VehiculeAntoine.plus_fabriqué=False ORDER BY VehiculeAntoine.cNomVéhicule;

Je vois pas comment il arrive à m'afficher un tas de liste déroulante ....
Messages postés
23779
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 décembre 2021
3 148
Je vois pas comment il arrive à m'afficher un tas de liste déroulante ....
Il a créé autant de listes qu'il avait besoin, ensuite il les met à jour, peut-être avec du vba et la propriété rowsource ?

Tu pourrais me faire une copie d'écran à mettre sur www.cjoint.com que j'essaye de comprendre ton vocabulaire ?
Je suis en train de tenter de resoudre mon problème en passant par autre chose, mais dès j'te montrerais tout de même le code après, j'aimerais bien savoir.

J'ai une autre question plus trop rapport avec ca :

Dans une boucle for, y a t-il une instruction du genre "exit" pour sortir?
exit for..... tout simplement