Comment remplir un combobox

Résolu
dutslimani Messages postés 10 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 6 septembre 2006 - 4 sept. 2006 à 16:29
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 6 sept. 2006 à 10:33
bonjour,


j'ai besoin d'aide j'ai un petit pb sous vb6 :
 j'ai cnnecter a une bd access et je peux pas remplir
un combobox , voila le code que je viens de tapé :

Set rs = New ADODB.Recordset
  sql = "select champfrom table"
 rs.Open sql, cnx, adOpenStatic, adLockReadOnly
doWhile rs.EOF = False
combo.Additem rs("champ")
rs.MoveNext
Loop




 

20 réponses

dutslimani Messages postés 10 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 6 septembre 2006
5 sept. 2006 à 12:40
votre réponse a resolue une partie du pb j'ai trouver la solution maitenent et je veux la publié pour aidé les autre comment puisse je le faire ?
la solution c'est :
Private Sub Form_Load()
Dim url As String
Dim pw As String
url = "C:\DossierTravail\Promotion\Base\Promotion.mdb"
pw = "2004"
Call ConnexionBase(url, pw)


 Dim sql As String
 Dim nb As Integer


 On Error GoTo erreur
 Set rs = New ADODB.Recordset
 
 sql = "select *  from Gouvernorat "
 rs.Open sql, cnx, adOpenStatic, adLockOptimistic, adCmdText


 nb = rs.RecordCount
 MsgBox nb
 
 Set Combo1.DataSource = rs
 Combo1.DataField = "CodeGouv"
 
 Dim i As Long
 rs.MoveFirst
 For i = 1 To rs.RecordCount
 Combo1.AddItem (rs.Fields("LibeGouvLong"))
rs.MoveNext
Next i
erreur:


End Sub


voila et Merci pour vous




 
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 sept. 2006 à 16:39
Set rs = New ADODB.Recordset
  sql = "select champ from table"
 rs.Open sql, cnx, adOpenStatic, adLockReadOnly
doWhile rs.EOF = False
combo.Additem rs("champ")
rs.MoveNext
Loop

Ne pas oublier l'espace dans ta requête SQL.

Si ca vient pas de là, dis nous au moins les messages d'erreurs que tu obtiens, nous ne sommes pas voyants.
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
4 sept. 2006 à 16:48
Salut,

- Est ce ta connection s'ouvre bien sans erreur.
- Est ce que ta requete est correcte? peu etre qu'elle ne retourne tout simplement rien.
- As  tu essayer en débug pour voir le comportement de ta boucle
- Peu etre que ton combobox ne s'appelle pas Combo
Pour le reste je rejoints DARKSIDIOUS Pour avoir plus de précision.

@+,   Ju£i?n
0
dutslimani Messages postés 10 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 6 septembre 2006
4 sept. 2006 à 17:04
mon pb est quand je tape


combo.


la methode additem ne s'affiche pas alors j'ai l'ecrir manuellement




 
0

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

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
4 sept. 2006 à 17:08
Salut,


Ceci veut dire qu'a l'endroit ou tu as mis ce code il ne connait pas d'objet s'appelant Combo.


D'ou ma réflexion: "- Peu etre que ton combobox ne s'appelle pas Combo".
Si ton code est dans un module il faut :
   - Soit t'assurer de passer en parametre l'objet combobox
   - Soit Rajouter le nom de la feuille contenant le Combobox (Ex: Form1.Combo1.Additem)

Si ton code est dans le code d'une feuille et bien c'est qu'il n'existe aucun combobox appelé Combo .
Q: "la methode additem ne s'affiche pas alors j'ai l'ecrir manuellement" =>  il y a til autre chose qui s'affiche.






@+,   Ju£i?n
0
dutslimani Messages postés 10 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 6 septembre 2006
4 sept. 2006 à 17:16
memme si je  tappe


 Dim i As Integer
 i = 0
doWhile rs.EOF = False
cmbRegion.AddItem (i)
i=i+1
 pour test ci ce le pb est dela requette
et çamarche pas




 
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
4 sept. 2006 à 17:20
Salut,


On va tester par palier.


Ajoute un Combo Box a un nouveau projet (sans le renommer) ajoute ce code.



est ce que ceci fonctionne:








Option Explicit 

Private Sub Form_Load() 
Dim i As Integer 
For i =  1 To 15 
    Call Combo1.AddItem( CStr (i)) 
Next 
End Sub 

 







<small> Coloration syntaxique automatique [AFCK]</small>

       





Si cela fonctionne peu etre que rs.EOF = TRUE et donc il ne rentre jamais dans la boucle.
D'ou la reflexion dans mon premier post: => " As  tu essayer en débug pour voir le comportement de ta boucle"






@+,   Ju£i?n
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
4 sept. 2006 à 17:40
Bonjour,
rs.Open sql, cnx, adOpenDynamic, adLockReadOnly
Pour pouvoir parcourir le recordset

chaibat
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
4 sept. 2006 à 17:53
Pour parfaire le code
Set rs = New ADODB.Recordset
  sql = "select * from table"
  rs.Open sql, cnx, adOpenDynamic, adLockReadOnly
 
   On Error Resume Next
   rs.MoveLast
   rs.MoneFirst
   Do While Not rs.EOF
     combo.Additem rs("champ")
     rs.MoveNext
  Loop
 
0
dutslimani Messages postés 10 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 6 septembre 2006
5 sept. 2006 à 09:05
bonjour,
j'ai besoin d'un exemple qui
inclue l'utilisation des methode  datasource valuemenber d'un combobox
car j'ai besoin d'un combobox qui permet a un utilisateu de :
shoisir un article(nom) mais la valeurs insérer a la bd c'est sont ID

 
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 sept. 2006 à 09:23
Si tu veux qu'on t'aide, réponds au moins aux questions qu'on te pose :
Est-ce que le code de jrivet fonctionne ?

Je me répète : Nous ne sommes pas voyant, nous ne pouvons pas trouver des réponses à tes problèmes si tu nous indique pas clairement quels sont ces problèmes !
0
dutslimani Messages postés 10 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 6 septembre 2006
5 sept. 2006 à 10:06
je repond mais je retourne toujour au code pour gagné
le temp
maintenat j'ai changé le code comme suit mais un message s'affiche
methode ou menbre de donné introuvable

Private Sub Form_Load()
Dim url As String
Dim pw As String
url = "C:\DossierTravail\Promotion\Base\Promotion.mdb"
pw = "2004"
Call ConnexionBase(url, pw)
'Call RemplirCmb
 Dim sql As String
 Dim nb As Integer


 
 On Error GoTo erreur
 Set rs = New ADODB.Recordset
 
 sql = "select *  from Gouvernorat "
 rs.Open sql, cnx, adOpenStatic, adLockOptimistic
 'nb = rs.RecordCount
 cmbRegion.DataSource = rs
 cmbRegion.DataMember = "CodeGouv"
 cmbRegion.DataField = "LibeGouv"
 erreur:
End Sub




 
0
dutslimani Messages postés 10 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 6 septembre 2006
5 sept. 2006 à 10:08
je suis debutante je suis pa habitué  avec les forum

 
0
dutslimani Messages postés 10 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 6 septembre 2006
5 sept. 2006 à 10:10
la base contient de donné saisie en langue arabe

 
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 sept. 2006 à 11:02
Set
cmbRegion.DataSource = rs










Sinon, ca vient peut-être du format des données aussi : vb6 travaille en ASCII, et non en UNICODE, hors la langue arabe est codée en UNICODE il me semble !
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
5 sept. 2006 à 11:09
Salut, je n'utilise jamais cette méthode, mais as-tu essayé en mettant "Set" pour le DataSource ?
Set  cmbRegion.DataSource = rs


et aussi peut-être inverser les 2 lignes (?)


cmbRegion.DataMember = "CodeGouv"
Set   cmbRegion.DataSource = rs


Et lorsque tu mets cette ligne, est-ce que ça retourne un nombre quelconque ?
nb = rs.RecordCount


MPi
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
5 sept. 2006 à 11:16
Salut,
Comment s'appelle le comboBox inseré dans la feuille  (pas dans le code, dans la feuille)?

@+,   Ju£i?n
0
dutslimani Messages postés 10 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 6 septembre 2006
6 sept. 2006 à 09:16
bonjour,


alors j'ai arriver a charger le combo,


mais j'ai plusiers combo que je doit les charger de meme façons


le pb est comment je peux passer le nom du combo en parametre a la fonction suivante :


 



Public Sub charger_Combo(ByVal url As String, ByVal pw As String, ByVal table As String, ByVal V_Retour As String, ByVal V_Afficher As String, ByVal combo As String)


Dim rs As ADODB.Recordset
Dim sql As String


On Error GoTo erreur
Call ConnexionBase(url, pw)
sql = "select * from" & table
rs.Open sql, cnx, adOpenStatic, adLockOptimistic, adCmdText


Set form1.&combo.DataSource = rs


 combo.DataField = V_Retour
 
 Dim i As Long
 rs.MoveFirst
 For i = 1 To rs.RecordCount
 form1.&combo.AddItem (rs.Fields(V_Afficher))
rs.MoveNext
Next i




erreur:



End Sub



ou est ce que je peux ajouter cette fct au methode de l'objet combo : combo.fct()








 
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
6 sept. 2006 à 09:37
Salut,


Si toutes tes combo sont effectivement sur le Form1


Alors tu peux essayer la chose suivante






Public Sub charger_Combo(ByVal url As String, ByVal pw As String, ByVal table As String, ByVal V_Retour As String, _ByVal V_Afficher As String, ByRef pCombo As ComboBox

Dim rs As ADODB.Recordset 
Dim sql As String 

On Error GoTo erreur 
Call ConnexionBase(url, pw) 
sql = "select * from" & table 
rs.Open sql, cnx, adOpenStatic, adLockOptimistic, adCmdText 

Set Form1.pCombo.DataSource = rs 

 combo.DataField = V_Retour 

 Dim i As Long 
 rs.MoveFirst 
 For i = 1 To rs.RecordCount 
 Form1.pCombo.AddItem (rs.Fields(V_Afficher)) 
rs.MoveNext 
Next i 

erreur: 

End Sub 
 







<small> Coloration syntaxique automatique [AFCK]</small>

       







 






@+,   Ju£i?n
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 sept. 2006 à 10:33
Petite rectification du code de jrivet :

Public Sub charger_Combo(ByVal url As String, ByVal pw As String, ByVal table As String, ByVal V_Retour As String, _ByVal V_Afficher As String, ByRef pCombo As ComboBox

Dim rs As ADODB.Recordset 
Dim sql As String 

On Error GoTo erreur 
Call ConnexionBase(url, pw) 
sql = "select * from" & table 
rs.Open sql, cnx, adOpenStatic, adLockOptimistic, adCmdText 

Set pCombo.DataSource = rs 

 combo.DataField = V_Retour 

 Dim i As Long 
 rs.MoveFirst 
 For i = 1 To rs.RecordCount 
 pCombo.AddItem (rs.Fields(V_Afficher)) 
rs.MoveNext 
Next i 

erreur: 

End Sub

Pas besoin du Form1.pCombo, surtout que je ne pense pas que ca marche ainsi : lorsque tu passe pCombo en paramètre, c'est bien le pCombo du Form1 qui est envoyé => ca marche pour n'importe quelle form !
0
Rejoignez-nous