ADO Requête [VB6]

cs_kirikou95 Messages postés 60 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 27 février 2009 - 3 oct. 2007 à 14:46
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 - 4 oct. 2007 à 09:07
Voilà mon code :
___________________________________________________
Dim cnx2 As ADODB.Connection
Dim rs2 As ADODB.Recordset
Set cnx2 = New ADODB.Connection
cnx2.ConnectionString = "Chemin Base.mdb"
cnx2.Provider = "Microsoft.jet.OLEDB.4.0"
cnx2.Open
Set rs2 = New ADODB.Recordset
rs2.Open "select * from Acheteur", cnx2, adOpenDynamic, adLockPessimistic
With rs2
If .RecordCount <> 0 Then 
      .MoveFirst   
Do While Not .EOF   
        Combo3.AddItem .Fields("Nom Acheteur")  
         .MoveNext  
        Loop
End If
    .close
End With

---------------------------------------------------------------------
J'ai donc mon menu déroulant "combo3" qui contient les noms des acheteurs.
Je voudrais maintenant avoir un autre combobox qui me permet de sélectionner les prénoms des acheteurs selon les noms sélectionnés.
Par exemple :
Nom :                                         Prénom :
AAAAAA                                 Daniel
AAAAAA                                 Sophie
BBBBBB                                 Bernard
BBBBBB                                 Pierre

Je voudrais que lorsque je sélectionne le nom 'AAAAA', qu'il me propose dans mon menu déroulant que les prénoms Daniel & Sophie.

je ne parviens pas à rédiger cette requête dans mon code.

Je vous remercie de votre aide.

Daniel E.

21 réponses

lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 6
3 oct. 2007 à 14:52
Bonjour,

Il faut pour cela utiliser une requête Sql :
Sql= "select * from Acheteur Where Nom_acheteur='" & Combobox1.Text & "'"
0
cs_kirikou95 Messages postés 60 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 27 février 2009
3 oct. 2007 à 15:19
Dim cnx3 As ADODB.Connection
Dim sql As String
Dim rs3 As ADODB.Recordset
Set cnx3 = New ADODB.Connection
cnx3.ConnectionString = "D:\Personnel\Visual Basic\Projets\Maranatha\Maranatha.mdb"
cnx3.Provider = "Microsoft.jet.OLEDB.4.0"
cnx3.Open
Set rs3 = New ADODB.Recordsetsql "select * from Acheteur Where Nom Acheteur '" & Combo3.Text & "' "
cnx.Execute sql



Voilà ce que j'ai noté lolokun, mais j'obtiens un message d'erreur :
Erreur de syntaxe (opérateur absent) dans l'expression 'Nom acheteur="'
ça te dit quelquechose ?

Daniel E.
0
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
3 oct. 2007 à 15:26
Salut,

Ouais, ça me dit, qu'il y a pas longtemt il me semble t'avoir expliquer quelquqe chose sur les [ ] ...!!!!

Essaye cela :
sql "select * from Acheteur Where [Nom Acheteur] '" & Combo3.Text & "' "

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
cs_kirikou95 Messages postés 60 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 27 février 2009
3 oct. 2007 à 15:31
Oui j'ai tout essayé, ne t'en fais pas !!
Même avec les crochets, ça ne marche pas. J'ai copié collé le mauvais test, c'est tout !

Daniel E.
0

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

Posez votre question
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
3 oct. 2007 à 16:01
Copier/coller le mauvais test ??

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
cs_kirikou95 Messages postés 60 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 27 février 2009
3 oct. 2007 à 16:03
Ouis, j'ai fais un test sans les crochets, et c'est celui que j'ai collé dans le message plus haut.
mais je dis t'inquiète pas, j'ai bien compris le problème des crochets.

Daniel E.
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 6
3 oct. 2007 à 16:07
Le plus simple serait peut-être de renommer ton champ sans mettre d'espace..

Sinon tu peux essayer en rajoutant le nom de ta table devant..


Where  Acheteur.[Nom acheteur] ou alors Where Acheteur![Nom acheteur]
Vu que je ne me sers pas de cette méthode je ne me souviens plus de la syntaxe exacte et je n'arrive pas à retrouver sur le forum pour le moment..
0
cs_kirikou95 Messages postés 60 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 27 février 2009
3 oct. 2007 à 16:30
Toujours sur échec, mais je vais insister à chercher !
Merci

Daniel E.
0
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
3 oct. 2007 à 16:35
Re,

Essaye comme cela :

Essaye cela :
sql "select * from Acheteur Where Acheteur.Fields("[Nom Acheteur]") '" & Combo3.Text & "' "

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 6
3 oct. 2007 à 16:40
Je viens de faire le test sur une base bidon en mettant un espace dans le nom du champ de la table et ça doit fonctionner..
As tu bien écrit pareil dans ta table?avec les majuscules?
0
cs_kirikou95 Messages postés 60 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 27 février 2009
3 oct. 2007 à 16:49
ça ne marche pas 'Exploreur' !

Daniel E.
0
cs_kirikou95 Messages postés 60 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 27 février 2009
3 oct. 2007 à 16:56
j'ai tout vérifié lolokun, serait-il possible que tu m'envoies ta source et les forms, ainsi, je pourrais comparer et voir sur quel bouton tu as mis ton code

Daniel E.
0
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
3 oct. 2007 à 17:02
Re,

Moi il y a un truc qui me chagrine, c'est que tu exécute ta requête directement avec la connection de ta base, ne vaudrait-il pas mieux utiliser le recordset ??

rs2.Open Sql, cnx2, adOpenDynamic, adLockPessimistic

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
cs_kirikou95 Messages postés 60 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 27 février 2009
3 oct. 2007 à 17:14
Toujours HS 'Explorateur'

Mais si lolokun dit que ça a marché, c'est que j'ai fauté quelque part voilà pourquoi j'aurais bien aimé comparé sa façon de procédé à la mienne  

Daniel E.
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 6
3 oct. 2007 à 17:21
Re

Bah là je suis rentré et je n'ai pas le test que j'ai fait.
Par contre ça a fonctionné mais en ouvrant un recordset comme l'a spécifié Exploreur.
0
bricoyeye Messages postés 326 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 29 avril 2008 2
3 oct. 2007 à 18:24
Salut,
essaye ça:

"SELECT * FROM [Acheteur] WHERE [Nom acheteur] like '%"& Combo3.Text & "' "
0
cs_kirikou95 Messages postés 60 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 27 février 2009
3 oct. 2007 à 18:42
toujours pareil :

Dim cnx3 As ADODB.Connection
Dim sql As String
Dim rs3 As ADODB.Recordset
Set cnx3 = New ADODB.Connection
cnx3.ConnectionString = "D:\Personnel\Visual Basic\Projets\Maranatha\Maranatha.mdb"
cnx3.Provider = "Microsoft.jet.OLEDB.4.0"
cnx3.Open
Set rs3 = New ADODB.Recordset
sql = "SELECT * FROM [Acheteur] WHERE [Prénom acheteur] like '%" & Combo3.Text & "' "
rs3.Open sql, cnx3, adOpenDynamic, adLockPessimistic

Je met le code dans le form load( )

Qu'en pensez-vous ?

Daniel E.
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 6
3 oct. 2007 à 18:50
Il vaut mieux mettre le code dans l'évènement click ou change de ta combo3.
Evites aussi les accents pour les noms de tes champs et au lieu de mettre des espaces tu mets des _
0
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
3 oct. 2007 à 20:33
Re,

Merci pour le HS....

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
bricoyeye Messages postés 326 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 29 avril 2008 2
4 oct. 2007 à 06:50
Salut,

Moi j'aurai fait ça:

Private Sub Combo3_Click()



Dim cnx3 As ADODB.Connection
Dim rs3 As New ADODB.Recordset
cnx3.ConnectionString = "D:\Personnel\Visual Basic\Projets\Maranatha\Maranatha.mdb"
cnx3.Provider = "Microsoft.jet.OLEDB.4.0"
cnx3.Open
rs3.Open "SELECT * FROM [Acheteur] WHERE [Prénom acheteur] like '%" & Combo3.Text & "' " & "%' ", cnx3, adOpenKeyset, adLockBatchOptimistic
0