Comment recuperer la valeur d'une comboboxVBA

Résolu/Fermé
MC" Messages postés 4 Date d'inscription jeudi 20 août 2009 Statut Membre Dernière intervention 21 août 2009 - 20 août 2009 à 12:51
MC" Messages postés 4 Date d'inscription jeudi 20 août 2009 Statut Membre Dernière intervention 21 août 2009 - 20 août 2009 à 13:15
Bonjour,

J'ecris du code VBA sou access.
Je cherche a recuperer dans une variable (format string) la valeur d'une combo box située dans un form.

Lorsque j'ecris :
strYear = CStr(Form_NewYearForm.ComboNewYear.Value)

strYear retourne la positioin (listIndex) et non pas le texte selectionné dans la combobox.

Est ce normal ?
Est ce que .Value retourne bien la chaine de caractere selectionnée dans la combo box ?

Merci pour votre aide.

2 réponses

Pico51 Messages postés 716 Date d'inscription mercredi 27 décembre 2006 Statut Membre Dernière intervention 16 juillet 2019 69
20 août 2009 à 12:56
Bonjour,

As-tu essayer la propriété Text au lieu de Value ?
Et je crois d'ailleurs que tu n'es pas obligé de faire un cast.
0
MC" Messages postés 4 Date d'inscription jeudi 20 août 2009 Statut Membre Dernière intervention 21 août 2009
20 août 2009 à 13:02
Lorsque j'ecris :
strYear = (Form_NewYearForm.ComboNewYear.Text)

J'ai un message d'erreur : Run-time error 2185
you can't refer a property or method for a control unless the control has the focus.

donc, je conlcus que .Text ne fonctionne pas ici.

MC2
0
MC" Messages postés 4 Date d'inscription jeudi 20 août 2009 Statut Membre Dernière intervention 21 août 2009
20 août 2009 à 13:15
J'ai trouve la solution :

Form_NewYearForm.ComboNewYear.SetFocus
strYear = CStr(Form_NewYearForm.ComboNewYear.Text)
Form_NewYearForm.Repaint

Pour utiliser la fonction .Text, il faut d'abord "mettre le focus" sur la combo box. Et ensuite enlever tout focus avec la fonction .Repaint.

.value et .text ont a peu pres le meme role dans une combo box.
.text correspond a ce qui est ecrit.
.value correspond a ce qui est ecrit apres enregistrement.

Merci Pico pour ton coup de pouce !
0