Accueil > Forum > > > > problème de requète sql avec la fonction where
problème de requète sql avec la fonction where
mardi 20 février 2007 à 15:27:35 |
problème de requète sql avec la fonction where

ti_flo
|
Bonjour à tous.
Je viens vous voir car j'ai un léger souci de requête SQL en
utilisant la fonction where. Je vous expose mon problème. J'effectue une connexion
à une base de donnée MYSQL avec VB6, en utilisant ODBC. Jusqu'à là, aucun
problème. J'effectue des requêtes simples du genre :
If requête("select distinct
nomclasse from classe;", rs) Then
......
......
......
ici aucun soucis tout fonctionne parfaitement.
Le problème se corse quand j'augmente l'importance de mes requêtes
et que j'y inclus une fonction Where, du genre :
If requête("SELECT nom, prenom FROM utilisateur, classe
WHERE utilisateur.iduser = classe.iduser AND nomclasse='" & id_classe
& "';", rs) Then
......
......
......
la j'obtient l'erreur suivante quand je lance l'application :
[mysql][ODBC 3.51 driver][mysqld-4.1.9-max] erreur
de syntaxe près de '1TSI1"' à la ligne 1.
J'ai donc essayer de remplacer '" & id_classe &
"' par '1TSI1' mais j'obtient exactement la même erreur.
De plus j'ai testé la requête SQL dans MYSQL grâce à EasyPHP et elle
fonctionne. Donc je ne comprends pas du tout d'où peut venir le problème, j'ai cherché sur
ce forum et j'ai trouvé quelqu'un qui avait le même problème que moi;
http://www.vbfrance.com/infomsg_PB-REQUETE-MYSQL-AVEC-VB-NET_658740.aspx
Mais c'était un problème avec les # des dates donc ne m'aide
pas. J'ai aussi essayer de savoir si cela venais de la jointure mais sa ne semble pas être
le cas. Donc voila je ne sais vraiment pas comment me sortir de ce problème c'est
pourquoi je fais appel à votre aide pour réussir à m'en sortir. J'aimerais
pouvoir bénéficié d'explication de votre part. Je vous remercie d'avance et vous souhaite une bonne journée.
PS: le message prend la valeur du nom de la classe selectionné, ici j'ai pris 1TSI1 comme exemple.
Ti_flo
|
|
mardi 20 février 2007 à 20:37:39 |
Re : problème de requète sql avec la fonction where

jack
|
Salut Déjà, on découvre ta ligne de commande qui fait appel à une fonction personnelle nommée "requête". On suppose que cette fonction te renvoie True (mais pourquoi ?) Qu'y a t-il dans cette fonction ? Ton exemple avec "1TSI1" est-il représentatif ? Analyse bien le vrai message d'erreur : N'y aurait-il pas un ' qui se balade quand ce texte ? Car dans ce cas, oui, la requête provoque une erreur de syntaxe puisque le nombre de ' est impair. (Peut-être idem pour le " )
D'autre part, tu spécifies plusieurs tables dans ta requête : Or, les noms des champs ne précisent pas depuis quelle table extraire le champ. S'il n'y a pas de champ qui porte le même nom dans ces diverses tables, pas de soucis. Mais si le champ "nomclasse" (exemple) existe dans plusieurs tables, SQL ne sait pas choisir. Donc, devant chaque champ, précise bien le nom de la table d'où tu l'extraies, exemple : "SELECT utilisateur.nom, utilisateur.prenom " & _ " FROM utilisateur, classe " & _ " WHERE utilisateur.iduser = classe.iduser " & _ " AND classe.nomclasse = '" & id_classe & "';"
Vala Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
|
|
mardi 20 février 2007 à 20:39:25 |
Re : problème de requète sql avec la fonction where

jack
|
PS : Et on suppose aussi que le terme 'id_classe' correspond à une variable ou un objet dans ton appli VB Tu l'as mis entre " donc il appartient au monde VB et pas SQL ...
|
|
mardi 20 février 2007 à 22:39:17 |
Re : problème de requète sql avec la fonction where

ti_flo
|
Bonsoir à toi jack.
Tout d'abord pour ce qui est de la variable id_classe elle
prend la valeur qui se trouve dans la combo liste :
Private Sub cmb_classe_Click()
id_classe = cmb_classe.Text
Pour la fonction requête elle me renvoie bien true, elle me permet de vérifier
si la connexion est établie et de vérifié que je parcours tout les
enregistrements de la base.
Pour l'exemple avec 1TSI1 est bien représentatif, je
m'explique. Dans un combo liste j'ai les noms des classes d'un lycée; 1TSI1,
1TSI2 ...
quand je clic sur l'un de ces noms la variable id_classe prend immédiatement la
valeurs de la classe choisie (en chaîne de caractère).
Dans ma requête, à l'endroit du where si je n'utiliserait pas ma
variable classe mais directement un nom de classe la syntaxe serait :
where nomclasse='1TSI1'; avec la fonction je dois utiliser la
concaténation ce qui me fait where nomclasse = '" & id_classe &
"';
Sinon je n'est pas besoin de fixer mes champs dans le select
car ils ne se trouve pas dans classe et dans utilisateur donc il n'y a pas
répétition.
Ce que je comprend vraiment pas, c'est pourquoi une requête
simple fonctionne mais que si je met un where sa foire, je ne pense pas que
cela puisse venir de fonction requête, je ne vois pas pourquoi car sa marche
avec une requête simple. Pour l'erreur de syntaxe je ne vois vraiment pas au
niveau de ma requête
|
|
mardi 20 février 2007 à 23:01:11 |
Re : problème de requète sql avec la fonction where

MPi
|
As-tu la possibilité de tester ton code sur une autre machine ?
Je m'explique... Au bureau, j'avais commencé à développer une application avec ADO (fichiers Excel et fichiers texte) et lorsque je mettais une clause Where, ça ne fonctionnait pas. J'ai essayé toutes sortes de méthodes (OLE, ODBC) et le Where ne fonctionnait jamais. Après quelques jours, j'ai essayé mon code chez moi et ça fonctionnait très bien. Je l'ai essayé sur différent PC au bureau et ça fonctionnait très bien...
J'ai demandé au technicien de réparer le tout... On a réinstallé MDAC et divers autres "patchs" mais ça n'a jamais réglé le problème... J'en suis toujours au même niveau et le where ne fonctionne toujours pas sur cette machine (???)
Je n'ai donc aucune explication à te donner, seulement mon expérience ...
MPi
|
|
mercredi 21 février 2007 à 01:44:12 |
Re : problème de requète sql avec la fonction where

ti_flo
|
Bonsoir MPI, quand tu dis que sa ne fonctionnait pas au bureau, tu avais un message d'erreur ? Si oui de quel genre ? je vais essayer dans la journée pour voir si cela fonctionne, merci du conseil. je vous redirais ça demain. merci et bonne nuit.
|
|
mercredi 21 février 2007 à 03:34:49 |
Re : problème de requète sql avec la fonction where

MPi
|
Je ne me rappelle pas du message d'erreur s'il y en avait un... Je pourrais essayer à nouveau et voir, mais ça n'ira pas avant Jeudi
MPi
|
|
mercredi 21 février 2007 à 10:39:27 |
Re : problème de requète sql avec la fonction where

ti_flo
|
Bonjour tous le monde. Bon après avoir essayer sur une autre machine j'obtient toujours le même message d'erreur : [mysql][ODBC 3.51 driver][mysqld-4.1.9-max] erreur de syntaxe près de '1TSI1"' à la ligne 1. je vais voir avec ma version EasyPHP car j'ai aperçu mysql 4.1.9 max, le problème vient peut-être de ma base elle même. Je dois dire que je commence à perdre espoir :'(. Bonne journée
Amicalement Ti_flo
|
|
mercredi 21 février 2007 à 12:34:32 |
Re : problème de requète sql avec la fonction where

MPi
|
Peut-être que l'erreur provient de ta Function requête() Si tu ne mets pas de Where, tu n'as que 2 guillemets, en mettant le where, tu te retrouves avec plusieurs, en plus des apostrophes.
Es-tu certain que ta Function gère bien ce genre de paramètre ? As-tu essayé en affectant ta requête SQL à une variable String et passer celle-ci en paramètre plutôt que de passer le texte en dur ?
MPi
|
|
mercredi 21 février 2007 à 12:42:14 |
Re : problème de requète sql avec la fonction where

ti_flo
|
Réponse acceptée !
C'est bon j'ai réussi à trouver la réponse. J'explique ici mon erreur, ça pourra toujours aider quelqu'un qui aura commise
la même erreur que moi.
La requête suivante est dans sa syntaxe bonne :
If requête("SELECT nom, prenom FROM utilisateur, classe WHERE
utilisateur.iduser = classe.iduser AND nomclasse='" & id_classe &
"';", rs) Then
En fait mon erreur résidait comme l'avait souligné jack se trouvait belle et
bien dans ma fonction requête. Après avoir lu divers message sur la fonction
replace je l'avais utiliser dans ma fonction requête (pour éviter d'avoir à la
répéter), et la ce matin je décide de la supprimer entièrement pour voir si
elle fonctionne sans la variable replace... et la réponse est oui tout fonctionne. Bon j'avoue j'ai encor quelques soucis dans mon programme (pas des messages
d'erreur, mais j'obtient pas le résultat escompter).
Merci pour votre aide jack et MPI et bonne journée à vous.
Amicalement Ti_flo (sa fonctionne enfin ^^)
|
|
Cette discussion est classée dans : problème, fonction, sql, classe, where
Répondre à ce message
Sujets en rapport avec ce message
Fonctions PL/SQL avec VB.NET [ par Jojo092 ]
Bonjour, j'ai un souci avec la communication d'une fonction PL/SQL et VB.NET. En fait, je suis en train de reprendre un programme qui a été développé
[Catégorie modifiée .Net --> VBA] Problème avec la fonction Hidden [ par lillyes ]
Bonjour à tous ! Un fois de plus j'ai besoin de vos conseils éclairés ! J'ai créé une base de données, ou les données sont regroupées par thèmes. Af
Problème avec la fonction « call ». [ par raphaeldiaz ]
SITUATION : Sur un worksheet de mon classeur (ThisWorkbook ou un autre), j’utilise cette macro qui me permet de vérifier la présence de la référence :
Problème avec des dates [ par bu36 ]
Bonjour à tous, Je suis nouveau sur le forum et j'ai besoin d'aide dans le cadre de la création d'une base de données de cadencier de commandes. Ma
problème avec requête sur plusieurs champ [ par ndaseraphin ]
bonjour, S'il vous je veux de l'aide. voici mon problème: J'ai fais une requête sur plusieurs champs: Private Sub CmbAgent_Click() 'On Error Resume N
problème fonction [ par blooxy ]
Bonjour! Je débute en VBA et je souhaiterais utiliser une fonction trouvé sur le web. Le problème est quelle me revoit la valeur 0, ce qui est inexac
Problème avec la fonction replace [ par clements42 ]
bonjour, voici mon problème : j'importe le contenu d'un fichier texte dans excel. les nombres décimaux présents utilisent la virgule. je souhaite in
vba fonction classe static [ par forX ]
je voulais savoir comment faire une classe avec des fonctions static sur vba en c# c simple [code=cs]public class demo { public static int Number
Remplacer Cdate par fonction SQL Server [ par js8bleu ]
Bonjour, je voudrai faire une comparaison entre une date récupérée à partir d'une table (dateinscription from tableinscription) et un textbox contena
VBA et fonction Call: problème... [ par flostralian ]
Bonjour à tous, Après de longues recherches sur les forums, je n'ai pas trouvé la réponse à mon problème. Le code a été validé mais après avoir raj
Livres en rapport
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|