Pb combo box

coyote56 Messages postés 22 Date d'inscription mardi 29 mai 2007 Statut Membre Dernière intervention 19 mai 2009 - 13 juin 2007 à 15:37
coyote56 Messages postés 22 Date d'inscription mardi 29 mai 2007 Statut Membre Dernière intervention 19 mai 2009 - 14 juin 2007 à 15:25
Bonjour,
Je voudrais avoir des informations concernant l'objet combo box.
J'aimerais mettre une liste de numéro dans cette combo box à partir d'une base de données.
Merci. ;)

PS:

Voici le code que nous avons effectués :

Private Sub Form_Activate()
For i  = 1 to TableClient.RecordCount
    Combo1.AddItem ( TableClient.Fields("Num"))
Next
End Sub

Cependant cela nous indique le bon nombre de Numéro mais le premier numéro est répété.
Exemple : (il y a 3 enregistrements) on voit apparaitre : 1
                                                                                   1
                                                                                   1

9 réponses

cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
13 juin 2007 à 15:46
Salut,

c'est logique car tu ne parcours pas tes enregistrements. Il te faut un recordset et passer a l'enregistrement suivant avec recordset.MoveNext.

Si tu reflechi 2 min tu verras que tu boucles sur un nombre d'enregistrements et pas sur les enregistrements aux memes
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
13 juin 2007 à 15:49
En gros, il te faudrait plutot un truc du genre

For each record in table.records
   Combo1.AddItem ( TableClient.Fields("Num"))
Next

ou bien.

For i  = 1 to TableClient.RecordCount
    Combo1.AddItem ( TableClient.Fields("Num"))
   TableClient.NextRecord
Next

Ce n'est pas forcement les synthaxes exactes mais c'est la logique que je cherches a te montrer.
0
coyote56 Messages postés 22 Date d'inscription mardi 29 mai 2007 Statut Membre Dernière intervention 19 mai 2009
13 juin 2007 à 15:58
ok merci je vais essayer ça ;)
0
coyote56 Messages postés 22 Date d'inscription mardi 29 mai 2007 Statut Membre Dernière intervention 19 mai 2009
13 juin 2007 à 17:57
On y arrive pas ou cela ne marche pas, quelqu'un d'autre pourrait nous aider ?
Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 6
13 juin 2007 à 20:22
Bonjour,



Je pense qu'il faut passer par un recordset comme le signale Nicko11 et
parcourir les enregistrements jusqu'à la fin de ta table.




With monRecordset



    If .RecordCount <> 0 Then



        .MoveFirst



         Do While Not .EOF 



         Combo1.AddItem .Fields("Num")



        .MoveNext



    Loop



End With
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
13 juin 2007 à 22:37
Voila exactement mais le truc, c'est que je crois que [auteurdetail.aspx?ID=1074367 coyote56]maitrise pas le recordset. Pourtant une petite recherche sur ce site lui donnerait toutes les infos nécessaires.

[auteurdetail.aspx?ID=1074367 coyote56] :
 
As tu une connexion ADO ? Quel est le type de TableClient ?

Et puis :

"On y arrive pas ou cela ne marche pas ", ok mais vous avez essayé quoi et en quoi ca ne fonctionne pas.
0
coyote56 Messages postés 22 Date d'inscription mardi 29 mai 2007 Statut Membre Dernière intervention 19 mai 2009
14 juin 2007 à 14:52
En effet on ne maitrise pas très bien le recordset.
euhm on a une connexion en DAO et le type de TableClient est un recordset.
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
14 juin 2007 à 15:19
Et bien si c'est un recordset, il doit bien avoir une méthode permettant de se balader dans les différents enregistrements (MoveNext, MovePrevions, MoveFirst, MoveLast).

Donc, ce que j'ai écrit doit fonctionner :

TableClient.MoveFirst
For i  = 1 to TableClient.RecordCount
    Combo1.AddItem ( TableClient.Fields("Num"))
   TableClient.MoveNext
Next
0
coyote56 Messages postés 22 Date d'inscription mardi 29 mai 2007 Statut Membre Dernière intervention 19 mai 2009
14 juin 2007 à 15:25
ça yé ça marche avec le code suivant :

Do While Not TableClient.EOF
    Combo1.AddItem TableClient.Fields("Num")
    TableClient.MoveNext
Loop

Merci de votre aide ;)
0