Comment remplir un combobox [Résolu]

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




 
Afficher la suite 

Votre réponse

20 réponses

Meilleure réponse
Messages postés
10
Date d'inscription
samedi 20 mai 2006
Dernière intervention
6 septembre 2006
5 sept. 2006 à 12:40
3
Merci
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




 

Merci dutslimani 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de dutslimani
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
4 sept. 2006 à 16:39
0
Merci
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
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
4 sept. 2006 à 16:48
0
Merci
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
Messages postés
10
Date d'inscription
samedi 20 mai 2006
Dernière intervention
6 septembre 2006
4 sept. 2006 à 17:04
0
Merci
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
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
4 sept. 2006 à 17:08
0
Merci
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
Messages postés
10
Date d'inscription
samedi 20 mai 2006
Dernière intervention
6 septembre 2006
4 sept. 2006 à 17:16
0
Merci
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
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
4 sept. 2006 à 17:20
0
Merci
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
Messages postés
1884
Date d'inscription
samedi 1 avril 2006
Dernière intervention
20 novembre 2007
4 sept. 2006 à 17:40
0
Merci
Bonjour,
rs.Open sql, cnx, adOpenDynamic, adLockReadOnly
Pour pouvoir parcourir le recordset

chaibat
Commenter la réponse de chaibat05
Messages postés
1884
Date d'inscription
samedi 1 avril 2006
Dernière intervention
20 novembre 2007
4 sept. 2006 à 17:53
0
Merci
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
Messages postés
10
Date d'inscription
samedi 20 mai 2006
Dernière intervention
6 septembre 2006
5 sept. 2006 à 09:05
0
Merci
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
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
5 sept. 2006 à 09:23
0
Merci
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
Messages postés
10
Date d'inscription
samedi 20 mai 2006
Dernière intervention
6 septembre 2006
5 sept. 2006 à 10:06
0
Merci
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
Messages postés
10
Date d'inscription
samedi 20 mai 2006
Dernière intervention
6 septembre 2006
5 sept. 2006 à 10:08
0
Merci
je suis debutante je suis pa habitué  avec les forum

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

 
Commenter la réponse de dutslimani
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
5 sept. 2006 à 11:02
0
Merci
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
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
5 sept. 2006 à 11:09
0
Merci
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
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
5 sept. 2006 à 11:16
0
Merci
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
Messages postés
10
Date d'inscription
samedi 20 mai 2006
Dernière intervention
6 septembre 2006
6 sept. 2006 à 09:16
0
Merci
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
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
6 sept. 2006 à 09:37
0
Merci
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
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
6 sept. 2006 à 10:33
0
Merci
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.