Comment remplir un combobox [Résolu]

dutslimani 10 Messages postés samedi 20 mai 2006Date d'inscription 6 septembre 2006 Dernière intervention - 4 sept. 2006 à 16:29 - Dernière réponse : cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention
- 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




 
Afficher la suite 

20 réponses

Répondre au sujet
dutslimani 10 Messages postés samedi 20 mai 2006Date d'inscription 6 septembre 2006 Dernière intervention - 5 sept. 2006 à 12:40
+3
Utile
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




 
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de dutslimani
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 4 sept. 2006 à 16:39
0
Utile
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.
Commenter la réponse de cs_DARKSIDIOUS
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 4 sept. 2006 à 16:48
0
Utile
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
Commenter la réponse de jrivet
dutslimani 10 Messages postés samedi 20 mai 2006Date d'inscription 6 septembre 2006 Dernière intervention - 4 sept. 2006 à 17:04
0
Utile
mon pb est quand je tape


combo.


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




 
Commenter la réponse de dutslimani
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 4 sept. 2006 à 17:08
0
Utile
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
Commenter la réponse de jrivet
dutslimani 10 Messages postés samedi 20 mai 2006Date d'inscription 6 septembre 2006 Dernière intervention - 4 sept. 2006 à 17:16
0
Utile
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




 
Commenter la réponse de dutslimani
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 4 sept. 2006 à 17:20
0
Utile
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
Commenter la réponse de jrivet
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 4 sept. 2006 à 17:40
0
Utile
Bonjour,
rs.Open sql, cnx, adOpenDynamic, adLockReadOnly
Pour pouvoir parcourir le recordset

chaibat
Commenter la réponse de chaibat05
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 4 sept. 2006 à 17:53
0
Utile
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
 
Commenter la réponse de chaibat05
dutslimani 10 Messages postés samedi 20 mai 2006Date d'inscription 6 septembre 2006 Dernière intervention - 5 sept. 2006 à 09:05
0
Utile
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

 
Commenter la réponse de dutslimani
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 5 sept. 2006 à 09:23
0
Utile
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 !
Commenter la réponse de cs_DARKSIDIOUS
dutslimani 10 Messages postés samedi 20 mai 2006Date d'inscription 6 septembre 2006 Dernière intervention - 5 sept. 2006 à 10:06
0
Utile
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




 
Commenter la réponse de dutslimani
dutslimani 10 Messages postés samedi 20 mai 2006Date d'inscription 6 septembre 2006 Dernière intervention - 5 sept. 2006 à 10:08
0
Utile
je suis debutante je suis pa habitué  avec les forum

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

 
Commenter la réponse de dutslimani
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 5 sept. 2006 à 11:02
0
Utile
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 !
Commenter la réponse de cs_DARKSIDIOUS
cs_MPi 3863 Messages postés mardi 19 mars 2002Date d'inscription 13 mars 2018 Dernière intervention - 5 sept. 2006 à 11:09
0
Utile
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
Commenter la réponse de cs_MPi
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 5 sept. 2006 à 11:16
0
Utile
Salut,
Comment s'appelle le comboBox inseré dans la feuille  (pas dans le code, dans la feuille)?

@+,   Ju£i?n
Commenter la réponse de jrivet
dutslimani 10 Messages postés samedi 20 mai 2006Date d'inscription 6 septembre 2006 Dernière intervention - 6 sept. 2006 à 09:16
0
Utile
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()








 
Commenter la réponse de dutslimani
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 6 sept. 2006 à 09:37
0
Utile
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
Commenter la réponse de jrivet
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 6 sept. 2006 à 10:33
0
Utile
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 !
Commenter la réponse de cs_DARKSIDIOUS

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.