cs_kirikou95
Messages postés60Date d'inscriptionmercredi 3 janvier 2007StatutMembreDernière intervention27 février 2009
-
3 oct. 2007 à 14:46
lolokun
Messages postés1241Date d'inscriptionmardi 10 octobre 2006StatutMembreDernière intervention27 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.
cs_kirikou95
Messages postés60Date d'inscriptionmercredi 3 janvier 2007StatutMembreDernière intervention27 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 ?
cs_kirikou95
Messages postés60Date d'inscriptionmercredi 3 janvier 2007StatutMembreDernière intervention27 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.
lolokun
Messages postés1241Date d'inscriptionmardi 10 octobre 2006StatutMembreDernière intervention27 août 20137 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..
lolokun
Messages postés1241Date d'inscriptionmardi 10 octobre 2006StatutMembreDernière intervention27 août 20137 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?
cs_kirikou95
Messages postés60Date d'inscriptionmercredi 3 janvier 2007StatutMembreDernière intervention27 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
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 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 ??
cs_kirikou95
Messages postés60Date d'inscriptionmercredi 3 janvier 2007StatutMembreDernière intervention27 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
lolokun
Messages postés1241Date d'inscriptionmardi 10 octobre 2006StatutMembreDernière intervention27 août 20137 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 _
bricoyeye
Messages postés326Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention29 avril 20082 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