Récupérer une référence d'un élément sélectionné dans une liste déroulante [Résolu]

keopsk 96 Messages postés jeudi 18 avril 2002Date d'inscription 9 mars 2007 Dernière intervention - 21 févr. 2007 à 19:35 - Dernière réponse : keopsk 96 Messages postés jeudi 18 avril 2002Date d'inscription 9 mars 2007 Dernière intervention
- 22 févr. 2007 à 12:30
Bonjour,

J'ai une liste de référence que je dois afficher dans une liste déroulante. Jusqu'à présent j''utilise une combobox pour sélectionner un élément. Pour savoir quel élément a été selectionné je récupére tout simplement son index.. Mon problème actuelle est que, désormais, chaque élément de liste est identifiable par une référence unique. Au lieu de récupérer l'index je dois récupérer la réference de l'élement sélectionnné.. Visiblement  la combobox n'est pas adaptée à ce problème..

Qq saurait s'il existe un autre objet permettant de résoudre mon pb.. je peux toujours garder ma combobox et gérer la correspondance entre les index et les références des élements par code. mais s'il existe un objet pouvant faire cela c'est mieux

merci d'avance
Afficher la suite 

Votre réponse

12 réponses

Molenn 797 Messages postés mardi 7 juin 2005Date d'inscription 23 février 2011 Dernière intervention - 22 févr. 2007 à 10:32
+3
Utile
Une autre solution, pas forcément géniale non plus (pourquoi les ComboBox d'ACCESS n'exitent pas en VB, je vous le demande !), mais pourquoi pas ...

Ta ComboBox est alimentée je suppose, puisque tu parles d'index, par une méthode addItem.
Tu pourrais créer une 2ème ComboBox que tu laisses en invisible, qui est alimentée en même temps que ta première avec cette fois ta référence.

Un truc du genre :
Boucle d'alimentation (For, Do While, ce que tu veux)
   ComboRéférence.additem Référence
   ComboLibellé.additem Libellé
Boucle
De cette manière, un même numéro d'index désignera la même chose dans les deux comboBox. Et quand dans la combo libellé, tu en sélectionneras un, tu vas récupérer la référence dans la combo référence en utilisant l'index.

Molenn
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Molenn
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 21 févr. 2007 à 19:46
0
Utile
Salut,

Est-ce cel que tu veux faire ?

Private Sub Command1_click()
Toto = combo1.Text
End Sub

A+
Exploreur
Commenter la réponse de cs_Exploreur
keopsk 96 Messages postés jeudi 18 avril 2002Date d'inscription 9 mars 2007 Dernière intervention - 21 févr. 2007 à 19:56
0
Utile
Bonjour Exploreur, finablement toujours serviable,

La commande combo1.text va me retourner le texte (visible) de l'élément selectionné.

Peut être que ma question n'était pas très claire.
Je dispose d'un tableau de 2 colonnes (col 1 référence, col 2 libellé). Dans la combo je dois afficher les libéllés. Lorsque je sélectionne un libellé je dois récupéréer sa référence.. . Avant je récupérais l'index de l'élément séléctionné pour savoir quel libellé a été sélectionné, mais il y a des modif dans les spéc.




merci encore
Commenter la réponse de keopsk
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 21 févr. 2007 à 20:19
0
Utile
Salut,

J'avais pas bien compris alors...Mes excuses

A+
Exploreur
Commenter la réponse de cs_Exploreur
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 21 févr. 2007 à 21:22
0
Utile
Bonsoir Keops,
Bonsoir Exploreur,

Je dirais qu'exploreur a fort bien répondu.
Sous VB6 (sous-forum dans lequel tu as "posté") les combobox ne peuvent posséder plus d'une colonne !!!
Alors : sous quoi, finalement, développes-tu ?
Commenter la réponse de jmfmarques
keopsk 96 Messages postés jeudi 18 avril 2002Date d'inscription 9 mars 2007 Dernière intervention - 21 févr. 2007 à 21:30
0
Utile
Bonsoir  jmfmarques

Justement mon problème vient du fait que les combo ne peuvent pas posséder plus d'une colonne.
La solution serait de trouver une autre objet sinon , comme je disais plus haut , faire les correspondance index/reférence pas le code

je développe en VB 6 (SP5)

Merci pour ta réponse
Commenter la réponse de keopsk
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 21 févr. 2007 à 21:36
0
Utile
Ben alors !
Utilise une listview, pardi !
Mais si tu tiens à continuer avec une Combo et que tu ne crains pas de faire un peu ramer ton appli :
Envoie donc dans ta Combo tes deux données séparées par un tab (ce qui t'obligeras ensuite, à chaque lecture, à "éclater" à nouveau en 2 parties).
Où est donc ton problème ?

Ceci dit : l'utilisation d'une listview me parait tout-à-fait conseillée ...
Commenter la réponse de jmfmarques
keopsk 96 Messages postés jeudi 18 avril 2002Date d'inscription 9 mars 2007 Dernière intervention - 21 févr. 2007 à 23:00
0
Utile
Merci pour ta réponse,

la liste view n'est de la même apparence graphique que la combo .. sinon ça pourait marcher
Commenter la réponse de keopsk
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 21 févr. 2007 à 23:04
0
Utile
Su tu n'aimes pas la listview et que (je te le répête) tu  tiens à rester avec une combobox, qu'à cela ne tienne !
Je t'ai dit plus haut comment faire (sépare par des tabs puis gère à la lecture en "éclatant" par rapport à tes tabs).
C'est un choix à faire et que TU devras faire .
Commenter la réponse de jmfmarques
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 22 févr. 2007 à 10:47
0
Utile
Salut Keopsk,

Je suis du même avis(avis personnel) que Jmfmarques en ce concerne le Listview...Facile d'utilisation...

A+
Exploreur
Commenter la réponse de cs_Exploreur
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 22 févr. 2007 à 11:46
0
Utile
Si c'est pour des raisons d'occupation d'affichage, il te suffit d'ajouter une scrollbar verticale et de jouer avec pour augmanter ou diminuer à la demande la hauteur de la listview.

Pour des raisons de commodité, tu veux enfin la reréduire à son minimum lors de l'événement Form-MouseMove....
Commenter la réponse de jmfmarques
keopsk 96 Messages postés jeudi 18 avril 2002Date d'inscription 9 mars 2007 Dernière intervention - 22 févr. 2007 à 12:30
0
Utile
Merci à tout le monde d'avoir participer à mon problème. La solution qui me parait la plus simple est celle de Molenn, même si le fait d'ajouter des objets graphiques pour ce genre de manipulation n'est pas très recommandable... Mais je pense que c'est la solution la plus simple

à bientôt
Commenter la réponse de keopsk

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.