Remplir MyDataGrid par requête SQL

marsya Messages postés 4 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 30 août 2009 - 30 août 2009 à 18:45
cs_Ayr Messages postés 221 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 13 décembre 2009 - 31 août 2009 à 00:02
Bonjour,
Je travail sur une petite application en VB6,et j'ai un petit souci pour remplir mon DataGrid,bon j' m'explique plus, j'ai lier mon DataGrid à un Adodc dont le Recodsource est la requête est :"select Libellé,prix from Produit where Code='"& Combo1.text &"'
Combo1 :est un DataCombo contenant tous les Codes que j'ai dans ma table Produit.

mon objectif est de choisir un Code dans le combo1 ,cliquer sur rechercher et par la suite avoir les données Libellé,prix dans mon DataGrid,mais ça marche pas ??? pouvez vous m'aidez

d'avance Merci

7 réponses

cs_Ayr Messages postés 221 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 13 décembre 2009 2
30 août 2009 à 20:04
Bonjour,

Pourrais-tu nous dire à quel moment ça ne marche pas ?
Je veux dire, tu est déjà sur que ça viens de ta requête, ou est-il possible
qu'une autre partie du code sois en cause ?

Peux-tu mettre un point d'arrêt sur la ligne de code qui construit ta requête et
nous dire, en utilisant un espion, ce que contient la chaine de texte après
construction ?
0
marsya Messages postés 4 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 30 août 2009
30 août 2009 à 21:13
Bonjour,

en fait j'ai pas mis ma requête dans le code ,j'ai la mis juste dans la proprieté recordsourc de la ADODC,et ça marche pas une fois je click sur le btn recherche il s'affiche rien dans la DataGrid,parcontre si je mets dans la requête :where Code=200(exple de Code existant da ma table Produit) au lieu de where Code='"& Combo1.text &"' ,dans ce cas ça marche j'ai bien l'enregistrement correspondant au Code 200

Merci
0
cs_Ayr Messages postés 221 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 13 décembre 2009 2
30 août 2009 à 21:30
Je n'ai pas vb6 là donc je ne peux hélas pas essayer directement ton code.
Cependant je viens de remarquer une chose, il semble manquer une " à la fin
de ta requête. C'est juste un défaut de Copier/Coller ? Si non, elle est
nécessaire. Je pense, mais moins important, que tu peux virer les ' '.

Essaye :

  "SELECT Produit.Libellé, Produit.prix FROM Produit WHERE Produit.Code = " & Combo1.text


D'autre part, il serait interressant de mettre un espion sur ton DataGrid
et un point d'arrêt au moment où tu click. Tu pourra ainsi aller voir le contenu
réèl de la propriété contenant la requête et t'assurer que c'est bien ce que
tu veux avant de lancer la recherche.
0
marsya Messages postés 4 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 30 août 2009
30 août 2009 à 22:25
là voilà la requête que j'ai mis dans le Recordsource de l'ADODC:SELECT Produit.Libellé ,Produit.prix from Produit where Produit.Code= '"& combo1.text &"' ,j'ai essayé avec la requête :
"SELECT Produit.Libellé, Produit.prix FROM Produit WHERE Produit.Code = " & Combo1.text que vous m'avez envoyer mais il me génére une erreur syntax??
et pour le pour le point d'arrêt du DataGrid je sais pas à quel endroi je vais le mettre et comment je peux voir la requête au moment de l'exécution?


Merci
0

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

Posez votre question
marsya Messages postés 4 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 30 août 2009
30 août 2009 à 23:05
j'ai fait un point d'arrête et j'affiche le contenu de ADODC.Recordsource au moment de l'exécution et je trouve que le contenu est :SELECT Produit.Libellé ,Produit.prix from Produit where Produit.Code= '"& combo1.text &"' donc il a pas pris en considération la valeur que j'ai saisi dans le Combo1.
et si je travail avec la requête :"SELECT Produit.Libellé, Produit.prix FROM Produit WHERE Produit.Code = " & Combo1.text il m'affiche: Instruction SQL non valide;'DELETE','PROCEDURE','SELLECT',ou 'UPDATE' attendus?

Merci d'avance
0
cs_Ayr Messages postés 221 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 13 décembre 2009 2
30 août 2009 à 23:46
Bon, je pense que de toute façon, le mieux est de construire la requête au moment du click.

Du genre :

Dim RequeteSQL As String

RequeteSQL "SELECT Produit.Libellé ,Produit.prix from Produit where Produit.Code '" & combo1.text & "'"


et si ça ne donne rien, essai ça:
Dim RequeteSQL As String

RequeteSQL "SELECT Produit.Libellé ,Produit.prix from Produit where Produit.Code " & combo1.text


Car normalement les apostrophes sont à utiliser pour du texte.

Ensuite

ADODC.Recordsource = RequeteSQL

Et après rafraichir le contenu de l'objet ADODC avec un truc du genre

ADODC.Requery

ou approchant.

Désolé de ne pas être plus precis...

Si tu en as le courage, voici un lien vers un tutoriel très complet Comprendre les Recordset ADO

Quoi qu'il en soit, il me semble que le problème avec ta méthode
c'est que quand tu écrit directement la requête dans la propriété
Recordsource de l'ADODC il prend la partie : "& combo1.text &"
comme du texte puisqu'elle se trouve entre deux guillemet et donc
& combo1.text & devient le critère de recherche. Il ne trouve donc
aucun enregistrement.
0
cs_Ayr Messages postés 221 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 13 décembre 2009 2
31 août 2009 à 00:02
En Fait, pour le

ADODC.Requery


Ca risque d'être plutôt un

ADODC.Recordset.Requery
0
Rejoignez-nous