Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1498 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Débutant -> soucis avec Combo et ListBox

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA] Débutant -> soucis avec Combo et ListBox

n°155912
spectro
Lisez et meditez...
Posté le 10-06-2002 à 16:34:44  profilanswer
 

J'ai réussi a les remplir depuis une BD SQL Server, mais par contre je ne sait pas comment ces trucs marchent ! C pas comme en HTML avec un couple ('identifiant', 'blabla';) ? En fait je veux pouvoir recperer l'identifiant du texte selectionné par le gars dans la combo box, comment dois-je faire ??
 
Merci par avance,

mood
Publicité
Posté le 10-06-2002 à 16:34:44  profilanswer
 

n°155921
Loom the G​loom
Even coders get the blues...
Posté le 10-06-2002 à 16:38:29  profilanswer
 

taCombo.value
ou
taCombo.text


---------------
Music|Market|Feed|Loom|DVD
n°155941
spectro
Lisez et meditez...
Posté le 10-06-2002 à 16:44:58  profilanswer
 

Loom the Gloom a écrit a écrit :

taCombo.value
ou
taCombo.text  




 
Pourtant quand j'affiche macombo.value il me sort le text...
Mais c p'tet parce que je ne renseigne pas l'autre champs, il pete une erreur quand j'essaie...
UserForm1.ListBox1.AddItem myRS.Fields(0), myRS.Fields(1)
 
C'est pas comme ca peut-être ?

n°155948
Loom the G​loom
Even coders get the blues...
Posté le 10-06-2002 à 16:47:39  profilanswer
 

??
pas compris


---------------
Music|Market|Feed|Loom|DVD
n°155950
mareek
Et de 3 \o/
Posté le 10-06-2002 à 16:49:12  profilanswer
 

spectro a écrit a écrit :

 
 
Pourtant quand j'affiche macombo.value il me sort le text...
Mais c p'tet parce que je ne renseigne pas l'autre champs, il pete une erreur quand j'essaie...
UserForm1.ListBox1.AddItem myRS.Fields(0), myRS.Fields(1)
 
C'est pas comme ca peut-être ?  




 
dans les combobox et les listbox ya un champ texte et un index numérique (optionnel), c'est tout.


Message édité par mareek le 06-10-2002 à 16:49:31

---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°155952
spectro
Lisez et meditez...
Posté le 10-06-2002 à 16:51:40  profilanswer
 

mareek a écrit a écrit :

 
 
dans les combobox et les listbox ya un champ texte et un index numérique (optionnel), c'est tout.  




 
Cet index numérique, je peux mettre ce que je veux comme chiffres ? Ce n'est pas forcement 0,1,2,3,4,... ?
 
Pourquoi ca ne marche pas alors ce que j'ai mis plus haut, sachant que c'est bien un nombre que je mets en second ?

n°155957
spectro
Lisez et meditez...
Posté le 10-06-2002 à 16:53:46  profilanswer
 

Loom the Gloom a écrit a écrit :

??
pas compris  




 
OUi j'suis pas forcement tres clair  :)  
 
En fait je sors de ma base des couples ( 'identifiantnumerique', 'text';) que je veux mettre dans une combo ou listbox.
Ensuite quand l'utilisateur en selectionne un ( grace au text ) je veux recupérer l'identifiant correspondant. Et la je ne vois pas comment faire !

n°155959
mareek
Et de 3 \o/
Posté le 10-06-2002 à 16:55:24  profilanswer
 

spectro a écrit a écrit :

 
 
Cet index numérique, je peux mettre ce que je veux comme chiffres ? Ce n'est pas forcement 0,1,2,3,4,... ?




 
c'est un integer ou un long je crois, tu peux pas mettre de nombre à virgule.
 

Citation :

Pourquoi ca ne marche pas alors ce que j'ai mis plus haut, sachant que c'est bien un nombre que je mets en second ?


 
pour récupérer l'index de l'élément sélectionné, tu fais maListBox.listIndex


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°155964
Loom the G​loom
Even coders get the blues...
Posté le 10-06-2002 à 16:56:51  profilanswer
 

spectro a écrit a écrit :

 
 
OUi j'suis pas forcement tres clair  :)  
 
En fait je sors de ma base des couples ( 'identifiantnumerique', 'text';) que je veux mettre dans une combo ou listbox.
Ensuite quand l'utilisateur en selectionne un ( grace au text ) je veux recupérer l'identifiant correspondant. Et la je ne vois pas comment faire !  




 
 
ben le plus simple serait de ne stocker que le texte correspondant, et quand il est sélectionner, de récupérer l'identifiant correspodant dans la base


---------------
Music|Market|Feed|Loom|DVD
n°155972
spectro
Lisez et meditez...
Posté le 10-06-2002 à 16:59:27  profilanswer
 

mareek a écrit a écrit :

 
 
c'est un integer ou un long je crois, tu peux pas mettre de nombre à virgule.
 

Citation :

Pourquoi ca ne marche pas alors ce que j'ai mis plus haut, sachant que c'est bien un nombre que je mets en second ?


 
pour récupérer l'index de l'élément sélectionné, tu fais maListBox.listIndex  




 
Je veux bien, mais quand je mets :
UserForm1.ListBox1.AddItem myRS.Fields(0), myRS.Fields(1)
il me dit : "argument non valide" alors que c'est un INT le second ...??

mood
Publicité
Posté le 10-06-2002 à 16:59:27  profilanswer
 

n°155976
spectro
Lisez et meditez...
Posté le 10-06-2002 à 17:00:25  profilanswer
 

Loom the Gloom a écrit a écrit :

 
 
 
ben le plus simple serait de ne stocker que le texte correspondant, et quand il est sélectionner, de récupérer l'identifiant correspodant dans la base  




 
Je trouve super bizarre ( et bien lourd ) qu'il n'y ait pas moyen de faire comme avec une SelectBox HTML !!!

n°155983
El Scorcho
Posté le 10-06-2002 à 17:04:21  profilanswer
 

le second argument quand tu fais le additem doit obligatoirement être inférieur ou égal au nombre d'items. il représente en fait la position de l'élément dans la liste. donc si tes numéros font 1,7,5,4,3,2 ça le fait pas !!!
tu peux tjs faire un tableau à part stockant la correpondance valeur-identifiant mais c un peu plus chiant...

n°155990
mareek
Et de 3 \o/
Posté le 10-06-2002 à 17:11:22  profilanswer
 

spectro a écrit a écrit :

 
 
Je veux bien, mais quand je mets :
UserForm1.ListBox1.AddItem myRS.Fields(0), myRS.Fields(1)
il me dit : "argument non valide" alors que c'est un INT le second ...??  




 
essaie:
 

Code :
  1. UserForm1.ListBox1.AddItem myRS.Fields(0), CInt(myRS.Fields(1))


 
si ça marche pas, tu remplie ta liste d'autant d'éléments bidon que tu en as dans ton recordset et tu ajoute les éléments de ton recorset dans l'ordre que tu veux ensuite. (méthode gros bourrin, ya surement plus simple)


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°155991
spectro
Lisez et meditez...
Posté le 10-06-2002 à 17:11:58  profilanswer
 

El Scorcho a écrit a écrit :

le second argument quand tu fais le additem doit obligatoirement être inférieur ou égal au nombre d'items. il représente en fait la position de l'élément dans la liste. donc si tes numéros font 1,7,5,4,3,2 ça le fait pas !!!
tu peux tjs faire un tableau à part stockant la correpondance valeur-identifiant mais c un peu plus chiant...  




 
C clair, c lourd de devoir gérer deux trucs pour une simple combo box, je croyais que VBA etait un peu mieux que ca, je suis deçu  :(  
 
Enfin, si y'a pas d'autre moyen...

n°156673
Bolino
Posté le 11-06-2002 à 15:08:07  profilanswer
 

spectro a écrit a écrit :

 
 
C clair, c lourd de devoir gérer deux trucs pour une simple combo box, je croyais que VBA etait un peu mieux que ca, je suis deçu  :(  
 
Enfin, si y'a pas d'autre moyen...  




 
chaque élément de la liste est indexé, quel que soit le nombre de colonnes. C'est fait de manière auto quand on charge la liste
 
si j'ai bien compris le prob, tu cherches à mettre deux données par occurence de la liste, voici une solution qui peut marcher:
 
 
dans les propriétés de la listbox / Données / Origine source = Lsite de valeurs
 
dans les propriétés de la listbox / Format/ Nbre colonnes = 2
dans les propriétés de la listbox / Format/ Largeurs colonnes = 1cm;1cm; (par exemple)
 
dim myRs as recordset
dim masource as string
 
myRs.findfirst
While not myRs.EOF
masource=masource & myRs.field(0) & ";" & myRs.field(1) & ";"
wend
 
Listbox.rowsource=masource
 
après ça pour accéder au premier élément tu fais
Listbox.column(0, i)
'i c'est l'index de la donnée sélectionnée par l'utilisateur, ou plus simple:
Listbox.column(0, Listbox.Listindex)
 
dis moi si ça correpond à ce que tu cherches à faire :D


Message édité par Bolino le 06-11-2002 à 15:10:43
n°156704
spectro
Lisez et meditez...
Posté le 11-06-2002 à 15:23:14  profilanswer
 

Merci pour ta réponse,
Apparemment dans ton système, les deux infos seront affichées a chaque fois, non ?
 
Pour lemoment j'ai fait une autre méthode qui marche, mais j'aurais voulu faire comme un SELECT HTML :
<select>
  <option VALUE='2145'>blablabla</option>
</select>
 
Voilà, merci encore   :)

n°156741
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 11-06-2002 à 15:49:44  profilanswer
 

ça me parait bien lourd et bien compliqué, tout ça pour presque rien !
 
++

n°156748
El Scorcho
Posté le 11-06-2002 à 15:58:09  profilanswer
 

Tiens j'ai une solution bourrin mais rapide, tu mets deux listes dont une visible = false et tu fait pour l'ajout :
ListBox1.AddItem myRS.Fields(0)
ListBox2.AddItem myRS.Fields(1)
 
Et quand tu veux récupérer les valeurs :
valeur1 = listbox1.value
valeur2 = listbox2.list(listbox1.listindex)
 
Pas testé mais ça doit marcher...

n°156759
spectro
Lisez et meditez...
Posté le 11-06-2002 à 16:01:21  profilanswer
 

El Scorcho a écrit a écrit :

Tiens j'ai une solution bourrin mais rapide, tu mets deux listes dont une visible = false et tu fait pour l'ajout :
ListBox1.AddItem myRS.Fields(0)
ListBox2.AddItem myRS.Fields(1)
 
Et quand tu veux récupérer les valeurs :
valeur1 = listbox1.value
valeur2 = listbox2.list(listbox1.listindex)
 
Pas testé mais ça doit marcher...  




 
Ah oui, ca doit marcher, j'essaierai a l'occasion  :D  
Merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Débutant -> soucis avec Combo et ListBox

 

Sujets relatifs
[Débutant prog] Un programme pour gérer une auto-école..quel language?[DEBUTANT] Passer des variables par un formulaire
Fermer des connexions BDD sous VBA ? [too many connections]Débutant en C++ : Besoin d'aide !
[SQL & VBA] Format de date[ACCESS/VBA] Boite de dialog de selection de repertoire
[debutant inside] Comment on fait pour ...(UNIX)icone dans un listbox
[VBA] Problème de SetFocus[VBA] Evènement associé au changement d'enregistrement (Résolu)
Plus de sujets relatifs à : [VBA] Débutant -> soucis avec Combo et ListBox


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR