ADO Requête [VB6]

Signaler
Messages postés
60
Date d'inscription
mercredi 3 janvier 2007
Statut
Membre
Dernière intervention
27 février 2009
-
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
-
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

Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
6
Bonjour,

Il faut pour cela utiliser une requête Sql :
Sql= "select * from Acheteur Where Nom_acheteur='" & Combobox1.Text & "'"
Messages postés
60
Date d'inscription
mercredi 3 janvier 2007
Statut
Membre
Dernière intervention
27 février 2009

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.
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
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

 
Messages postés
60
Date d'inscription
mercredi 3 janvier 2007
Statut
Membre
Dernière intervention
27 février 2009

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.
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Copier/coller le mauvais test ??

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
60
Date d'inscription
mercredi 3 janvier 2007
Statut
Membre
Dernière intervention
27 février 2009

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.
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
6
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..
Messages postés
60
Date d'inscription
mercredi 3 janvier 2007
Statut
Membre
Dernière intervention
27 février 2009

Toujours sur échec, mais je vais insister à chercher !
Merci

Daniel E.
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
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

 
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
6
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?
Messages postés
60
Date d'inscription
mercredi 3 janvier 2007
Statut
Membre
Dernière intervention
27 février 2009

ça ne marche pas 'Exploreur' !

Daniel E.
Messages postés
60
Date d'inscription
mercredi 3 janvier 2007
Statut
Membre
Dernière intervention
27 février 2009

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.
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
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

 
Messages postés
60
Date d'inscription
mercredi 3 janvier 2007
Statut
Membre
Dernière intervention
27 février 2009

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.
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
6
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.
Messages postés
326
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
29 avril 2008
2
Salut,
essaye ça:

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

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.
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
6
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 _
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Re,

Merci pour le HS....

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
326
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
29 avril 2008
2
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