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

bjipowa 47 Messages postés mercredi 18 août 2004Date d'inscription 29 mars 2007 Dernière intervention - 3 juin 2005 à 10:32 - Dernière réponse : cs_ITALIA 2169 Messages postés vendredi 20 avril 2001Date d'inscription 30 juin 2009 Dernière intervention
- 6 juin 2005 à 07:27
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
Afficher la suite 

10 réponses

Meilleure réponse
cs_ITALIA 2169 Messages postés vendredi 20 avril 2001Date d'inscription 30 juin 2009 Dernière intervention - 3 juin 2005 à 13:06
3
Merci
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@

Merci cs_ITALIA 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

jpleroisse 1788 Messages postés mardi 7 novembre 2000Date d'inscription 11 mars 2006 Dernière intervention - 3 juin 2005 à 10:41
0
Merci
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
cs_ITALIA 2169 Messages postés vendredi 20 avril 2001Date d'inscription 30 juin 2009 Dernière intervention - 3 juin 2005 à 11:01
0
Merci
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@
cs_ITALIA 2169 Messages postés vendredi 20 avril 2001Date d'inscription 30 juin 2009 Dernière intervention - 3 juin 2005 à 11:01
0
Merci
Avec à la Fin

Set db= Nothing
Set Donnee =Nothing

It@li@
bjipowa 47 Messages postés mercredi 18 août 2004Date d'inscription 29 mars 2007 Dernière intervention - 3 juin 2005 à 12:35
0
Merci
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
bjipowa 47 Messages postés mercredi 18 août 2004Date d'inscription 29 mars 2007 Dernière intervention - 3 juin 2005 à 13:33
0
Merci
oki Italia

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

LooL

Merci et @+
cs_ITALIA 2169 Messages postés vendredi 20 avril 2001Date d'inscription 30 juin 2009 Dernière intervention - 3 juin 2005 à 13:45
0
Merci
Evites les noms de champ à rallongue ou avec des _, ou encore avec des accents...

It@li@
bjipowa 47 Messages postés mercredi 18 août 2004Date d'inscription 29 mars 2007 Dernière intervention - 3 juin 2005 à 15:02
0
Merci
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 ??
bjipowa 47 Messages postés mercredi 18 août 2004Date d'inscription 29 mars 2007 Dernière intervention - 3 juin 2005 à 15:03
0
Merci
Ok c'est bon question annulée LooL g vu!

merci quand même

+
cs_ITALIA 2169 Messages postés vendredi 20 avril 2001Date d'inscription 30 juin 2009 Dernière intervention - 6 juin 2005 à 07:27
0
Merci
Il faut enlever le =
NomPrenom.AddItem Donnee("NomPrenom_FNCI")

It@li@

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.