Recherche et trie

Signaler
Messages postés
20
Date d'inscription
jeudi 15 septembre 2005
Statut
Membre
Dernière intervention
16 janvier 2012
-
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
-
Bonjour a tous j'ai une petite preocupation .je viens de creer une base acces relier a VB il s'avere que je dois faire la recherche en utilisant deux(2) criteres le pays et la categorie.Alors j'ai mis deux combox
le probleme c'est quand je selectionne les deux combo pour qu'il puisse afficher dans un datagrid avec un combo ça marche. j'aimerai savoir comment faire pour selectionner les deux combox.
voici mon code:
Private Sub Command1_Click()
sql = "select * from  " & Combo1.Text & "  where Categorie.NomCategorie=" & Combo2.Text & ""
Set cn = New ADODB.Connection
Set reg = New ADODB.Recordset
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Administrateur\Bureau\Telecom.mdb;Persist Security Info=False"
reg.CursorLocation = adUseClient
reg.Open sql, cn, adOpenForwardOnly, adLockReadOnly
Set reg.ActiveConnection = Nothing
Set DataGrid1.DataSource = reg
cn.Close
End Sub

merci d'avance

10 réponses

Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

Je pense que ta requête devrait être comme cela :

sql = "select * from  TaTable  where TonCHamp1= '" & Combo1.Text & "' And TonChamp2 = '" & Combo2.Text & "'"

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
20
Date d'inscription
jeudi 15 septembre 2005
Statut
Membre
Dernière intervention
16 janvier 2012

Merci pour la reponse mais ça ne marche toujours pas il m'affiche un message du genre type de donnée incompatible avec l'expression du critere et il souligne cette ligne en jaune

reg.Open sql, cn, adOpenForwardOnly, adLockReadOnly
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

Essaye comme cela défois que :

reg.Open sql, cn, adOpenDynamic, adLockPessimistic

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
20
Date d'inscription
jeudi 15 septembre 2005
Statut
Membre
Dernière intervention
16 janvier 2012

ça toujours la meme chose je tiens a signalé que je debute en programmation
voici mon code:
Private Sub Command1_Click()
sql = "select * from  Entreprise  where Entreprise.Pays= " & Combo1.Text & " And Entreprise.Categorie = " & Combo2.Text & ""

'sql = "SELECT * FROM  Entreprise WHERE Entreprise.Pays= Entreprise." & Combo1.Text & ""
Set cn = New ADODB.Connection
Set reg = New ADODB.Recordset

        cn.Provider = "microsoft.jet.oledb.4.0"
        cn.ConnectionString = App.Path & "\base\Telecom.mdb"
        cn.Open

reg.CursorLocation = adUseClient
reg.Open sql, cn, adOpenDynamic, adLockPessimistic
Set reg.ActiveConnection = Nothing
Set DataGrid1.DataSource = reg
cn.Close
End Sub
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,


Dans ta requête à quoi correspond ce qui est en rouge ??
'sql = "SELECT * FROM  Entreprise WHERE Entreprise.Pays= Entreprise." & Combo1.Text & ""


A+
Exploreur

 Linux a un noyau, Windows un pépin


 
Messages postés
20
Date d'inscription
jeudi 15 septembre 2005
Statut
Membre
Dernière intervention
16 janvier 2012

Entreprise c'est la table. Pays et Categorie sont des champs de la table que je veux recuperer dans les combobox.
L'analyse c'est que une entreprise peut etre situé dans plusieurs pays. et chaque entreprise sont classé par categorie.
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Euh..bon, essayons cela :

Sql = "select * from  Entreprise  where Pays= '" & Combo1.Text & "' And Categorie = '" & Combo2.Text & "'"

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
20
Date d'inscription
jeudi 15 septembre 2005
Statut
Membre
Dernière intervention
16 janvier 2012

il affiche toujours le meme message type de donnée incompatible avec l'expression du critere. quand j'essaie de faire ça sql = "select * from  Entreprise  where Pays= " & Combo1.Text & " And Categorie = " & Combo2.Text & ""
il m'afiche erreur de syntaxe (operateur absent)dans l'expression 'pays=Congo and categorie=Fournisseur internet'.
je
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
5
Salut,

Pour les requetes sql les strings doivent être encadrées avec des ', donc essayes ce que t'avais proposé Exploreur:

sql = "select * from  Entreprise  where Pays= ' " & Combo1.Text & " '  And Categorie = ' " & Combo2.Text & " ' "
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

Je viens de trouver une source très intéréssante sur l'utilisation du DatdGrid regarde ICI, cela devrait répondre à ton problème...

Par contre j'ai regarder ton code que tu m'a envoyé, fait attention aux déclaration de tes variables, car tu les déclares en Public dans ton module, puis tu l'ais redéclare dans tes form >> Reg, Cn ....

A+
Exploreur

 Linux a un noyau, Windows un pépin