ComboBox sous VB 6.0 reliée à Access 2000 (avec DAO) [Résolu]

Signaler
Messages postés
47
Date d'inscription
mercredi 18 août 2004
Statut
Membre
Dernière intervention
29 mars 2007
-
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
-
Bonjour,

Je voudrais créer un comboBox qui me permet de selectionner dans ma Access le nom des utilisateurs et que cela me les affiche organiser par nom.

Voila le code pour la requete SQL a integrer (rappel : j'utilise DAO 3.6) :

Set db= opendatabase("c:\Mesdoc\...\fnci.mdb")
Set Donnee = db.openrecordset("SELECT nom_prenom FROM USER ORDER BY nom_prenom")

Etant donné que la requete renvoi plusieurs valeur, je suppose qu'il me faut utiliser une boucle FOR, mais je ne c'est pas comment faire. Faut il que j'incremente la variable DONNEE afin qu'elle me renvoi les lignes une par une ou faut t-il que je la perçoive comme un tableau et comment l'incrementer dans ces cas la ??

Voila ce que je voudrais faire :

If db.Recordcount<>0 then
For i=0 to Donnee[Nb_enregistrement]
ComboTT = Donnee[Num_element_en_cours]
Next
Else
Text1.Text = ERREUR DE CHARGEMENT ! acune donnee n'a pu etre trouvee...
End if
End ub

Je c'est, mon code n'est pas très explicite mais c'est pour essayer de vous faire c omprendre

Merci à ceux qui pourront m'aider

10 réponses

Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
Set db= opendatabase("c:\Mesdoc\...\fnci.mdb") ' Connexion à la Base
Set Donnee = db.openrecordset("SELECT nom_prenom FROM USER ORDER BY nom_prenom") ' Selection des Enregistrements selon les critéres de la Requete
If Donnee.Recordcount<>0 then ' Si des enregistrement sont Selectionnées par la Requete
Do Until Donnee.eof ' Jusqu'a la Fin de la Selection
ComboTT.Additem = Donnee[Num_element_en_cours] ' Ajout dans une Combo des champs Num_Element_En_Cours
Donnee.Movenext ' Passage au suivant
Next
Else
Text1.Text = ERREUR DE CHARGEMENT ! aucune donnee n'a pu etre trouvee...
End if
Set db=Nothing ' Liberation de la Memoire Attribuée
Set Donnee=Nothing

End sub

It@li@
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 179 internautes nous ont dit merci ce mois-ci

Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
25
Bonjour,

N'oublie pas de placer les les références à Activex
DataObject et DAO , pour toi DAO 3.6 et Activex DataObject 2.6
(je crois).





Private Sub Form_Activate()

Dim adoConnection As ADODB.Connection

Dim adoRecordSet As ADODB.Recordset

Set adoConnection = New ADODB.Connection

Set adoRecordSet = New ADODB.Recordset

Dim ConnectionString As String

ConnectionString "Provider Microsoft.Jet.OLEDB.3.51;" & " Data
Source = C:\Program Files\Microsoft Visual Studio\vb98\Biblio.mdb"

adoConnection.Open ConnectionString

adoRecordSet.Open "Publishers", adoConnection

Do Until adoRecordSet.EOF



Combo1.AddItem adoRecordSet!Name

adoRecordSet.MoveNext

Loop

adoRecordSet.Close

adoConnection.Close



Set adoConnection = Nothing

Set adoRecordSet = Nothing



End Sub



jpleroisse
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
Exact en cochant bien la Référence :

Set db= opendatabase("c:\Mesdoc\...\fnci.mdb")
Set Donnee = db.openrecordset("SELECT nom_prenom FROM USER ORDER BY nom_prenom")
If Donnee.Recordcount<>0 then
Do Until Donnee.eof
ComboTT = Donnee[Num_element_en_cours]
Donnee.Movenext
Next
Else
Text1.Text = ERREUR DE CHARGEMENT ! aucune donnee n'a pu etre trouvee...
End if

End ub

It@li@
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
Avec à la Fin

Set db= Nothing
Set Donnee =Nothing

It@li@
Messages postés
47
Date d'inscription
mercredi 18 août 2004
Statut
Membre
Dernière intervention
29 mars 2007

Salut Itali@,

Peut tu m'expliquer simplement le code stp (j'aime bien comprendre tout ce que j'écrit en fait LooL)

/* ici j'ai compris la boucle Do */
Do Until Donnee.eof
/* ici n'y a t-il pas un code spécifique a mettre ?? */
ComboTT = Donnee[Num_element_en_cours]
Donnee.Movenext
Next

Until Donnee.eof sert a koi ??

Est il neceesaire de crer une autre variable select count(nom_prenom) FROM ...
puisd de mettre la valeur trouvé afin de puvoir metrre par la suite
CombotTT = Donnee("Varaible") ??

Je c'est pas si c'est très très clair mon explication là ...

Merci
Messages postés
47
Date d'inscription
mercredi 18 août 2004
Statut
Membre
Dernière intervention
29 mars 2007

oki Italia

Et promis, cette fois je n'oublie plus de désalouer mes varialbes (Db= nothing)

LooL

Merci et @+
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
Evites les noms de champ à rallongue ou avec des _, ou encore avec des accents...

It@li@
Messages postés
47
Date d'inscription
mercredi 18 août 2004
Statut
Membre
Dernière intervention
29 mars 2007

Voila le code insérer :

Private Sub Form_Load()
' connexion au serveur
Set db = opendatabase("C:\Documents and Settings\bbouche\Mes documents\VB PROJET\FNCI\fnci.mdb")
' on cree et execute la requete
Set Donnee = db.openrecordset("SELECT * FROM UTILISATEUR ORDER BY NomPrenom_USER") ' Selection des Enregistrements selon les critéres de la Requete
' on verifie que la requete renvoie bien des valeurs
Do Until Donnee.EOF
NomPrenom.AddItem = Donnee("NomPrenom_FNCI")
Donnee.Movenext ' Passage au reultat suivant
Loop


' Liberation de la mémoire attribuée
Set db = Nothing
Set Donnee = Nothing
End Sub

Voila l'erreur que le prog me met en soulignant .Additem :
"Cet argument n'est pas facultatif"

kkun s'est à quoi elle correspond ??
Messages postés
47
Date d'inscription
mercredi 18 août 2004
Statut
Membre
Dernière intervention
29 mars 2007

Ok c'est bon question annulée LooL g vu!

merci quand même

+
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
Il faut enlever le =
NomPrenom.AddItem Donnee("NomPrenom_FNCI")

It@li@