Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1298 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL ACCESS] problème de syntaxe avec les JOIN

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL ACCESS] problème de syntaxe avec les JOIN

n°318483
Mad666
Posté le 26-02-2003 à 16:02:22  profilanswer
 

Bonjour tout le monde,
 
je pêche sur une connerie là et je m'en sors pas. Vous pouvez m'aider ?
 
J'ai écrit la requête suivante dans le code d'ACCESS et il me dit "erreur de syntaxe" :( :
 

Code :
  1. db.Execute ("INSERT INTO selectParcoursGrp(Parcours) SELECT DISTINCT Parcours FROM ((Parcours INNER JOIN Sections ON Parcours.Parcours=Section.Parcours) INNER JOIN (Lignes ON Parcours.Ligne=Lignes.Ligne)) WHERE Sections.Lieu_fin_section= " & arret1 & " AND Lignes.Nom= " & lignesSelect(i) & ";" )


 
Vous savez où est le problème parce que moi je ne le vois pas ...
 
Merci. :jap:

mood
Publicité
Posté le 26-02-2003 à 16:02:22  profilanswer
 

n°318551
vttman2
Je suis Open ...
Posté le 26-02-2003 à 16:44:07  profilanswer
 

C Peut-être ici que ça merde ( ' en gras in the text)
 
...
Sections.Lieu_fin_section= '" & arret1 & "' AND Lignes.Nom= '" & lignesSelect(i) & "';" )

n°318559
Mad666
Posté le 26-02-2003 à 16:52:33  profilanswer
 

non, ce ne sont pas les nains-postrophe. :( Merci quand même.
 
Autre chose ?

n°318562
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-02-2003 à 16:56:23  profilanswer
 

Te revoila avec ta signature toi ? Grrrrr.... :fou:
 
Dans ce genre de cas, le meilleur moyen de trouver l'erreur consiste à faire un echo de la requete, dans un debugger par exemple.
 
Mais pourquoi rajoutes tu le ";" à la fin ? Ca m'étonnerait pas que ça vienne de la...


---------------
J'ai un string dans l'array (Paris Hilton)
n°318634
Mad666
Posté le 26-02-2003 à 19:15:43  profilanswer
 

désolé :D
 
M'enfin, je ne te déteste point...et apparemment toi non plus puisque tu m'aide ! Je t'en remercie d'ailleurs. :)
 
Je vais essayer demain de le mettre en écho dans un débugger comme tu me le conseilles. Pour le ";" à la fin, j'ai toujours fait comme ça et c'est toujours passé.

n°318937
tegu
Posté le 27-02-2003 à 09:51:52  profilanswer
 

Sans être vraiment sûr je te conseille la syntaxe suivante (qui m'est donnée par Access himself)
 


FROM (Parcours INNER JOIN Sections ON Parcours.Parcours=Section.Parcours) INNER JOIN Lignes ON Parcours.Ligne=Lignes.Ligne


 
A noter la suppression de qq parentheses par rapport à ta version, notament celle apres le second INNER JOIN qui me semble pouvoir poser problème


Message édité par tegu le 27-02-2003 à 09:52:20
n°318948
Mad666
Posté le 27-02-2003 à 10:05:30  profilanswer
 

Bon, j'ai essayé comme tu me l'a montré mais Access refuse encore. Ce ne serait pas un problème avec le INSERT INTO ?

n°318951
tegu
Posté le 27-02-2003 à 10:07:26  profilanswer
 

Oui c'est sûrement ça alors
 
edit: ben non c'est pas ça, mais je suis vraiment pas réveillé moi, va être temps quand même
 


Message édité par tegu le 27-02-2003 à 11:32:16
n°318956
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 27-02-2003 à 10:11:32  profilanswer
 

c'est pas encore résolu ce topic ? echo de la requête dans un debugger j'ai dit :o


---------------
J'ai un string dans l'array (Paris Hilton)
n°318963
tegu
Posté le 27-02-2003 à 10:15:27  profilanswer
 

Et tu obtiendras dans ton debugger le message d'erreur Access suivant:
Erreur de syntaxe
 
:)

mood
Publicité
Posté le 27-02-2003 à 10:15:27  profilanswer
 

n°318972
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 27-02-2003 à 10:19:32  profilanswer
 

Tegu a écrit :

Et tu obtiendras dans ton debugger le message d'erreur Access suivant:
Erreur de syntaxe
 
:)
 


Il verra surtout la requete telle qu'elle est transmise à Access, sans les noms de variables de VB :sarcastic:


---------------
J'ai un string dans l'array (Paris Hilton)
n°318980
tegu
Posté le 27-02-2003 à 10:24:16  profilanswer
 

Ben j'espère pour lui que sous VB il l'a fait depuis longtemps en mettant des points d'arret et en vérifiant les valeurs !!!
 
D'ailleurs où est il écrit que cette requete est lancée via VB ?
 
J'espère Mad666 que tu n'as pas Access sur ta machine, auquel cas tu l'aurais testé directement ta requête, hein ? Rassure moi.
 
 


Message édité par tegu le 27-02-2003 à 10:27:24
n°319019
Mad666
Posté le 27-02-2003 à 11:09:39  profilanswer
 

pas d'énervement Harkonnen (halala, c'est vérifié, ils ne sont vraiment pas passifs ces Harkonnen ! :D)
 
Bien entendu que je l'ai effectué ce debug avec les points d'arrêt et tout.
 
Bon, j'ai reformulé ma requête de la sorte et là ça fonctionne :
"INSERT INTO selectParcoursGrp ( Parcours, arret ) SELECT Parcours.Parcours, Sections.Lieu_fin_section FROM Lignes INNER JOIN (Parcours INNER JOIN Sections ON Parcours.Parcours = Sections.Parcours) ON Lignes.Ligne = Parcours.Ligne WHERE Sections.Lieu_fin_section = " & arret1 & " AND Lignes.Ligne = " & lignesSelect(i) & ";"
 
En fait, j'ai l'impression qu'il n'est pas possible d'avoir deux fois la même table du même côté d'un JOIN.

n°319026
Mad666
Posté le 27-02-2003 à 11:13:39  profilanswer
 

Tegu a écrit :

J'espère Mad666 que tu n'as pas Access sur ta machine, auquel cas tu l'aurais testé directement ta requête, hein ? Rassure moi.


euh... :whistle: ben en fait je ne veux pas me servir d'ACCESS pour générer des requêtes car je souhaite apprendre SQL correctement. :ange:
 
patapai :sweat:


Message édité par Mad666 le 27-02-2003 à 11:16:29
n°319031
tegu
Posté le 27-02-2003 à 11:20:17  profilanswer
 

Faudrait savoir, tu veux que ta requête fonctionne sur Access ou apprendre SQL correctement ?
Paske bon...
 
 

n°319035
Mad666
Posté le 27-02-2003 à 11:23:39  profilanswer
 

ben désolé. Pour moi je veux apprendre SQL et pour le boulot, je veux que ça fonctionne sous ACCESS, mais ça c'est secondaire ! :D
 
N'empêche que j'ai résolu le problème :)
 
Merci pour votre aide. :jap:

n°319079
tegu
Posté le 27-02-2003 à 11:48:11  profilanswer
 

Alors pour information, j'ai pris qq minutes de mon temps pour aller aux fonds des choses (j'aime comprendre).
J'ai reproduit ta base et ta requête initiale (celle qui bug)
Le problème vient bien de la parenthese qui suit le second INNER JOIN comme je l'avais suggéré au début.
 
La requete qui suit fonctionne


INSERT INTO unetable ( Parcours )
SELECT DISTINCT Parcours.Parcours
FROM ((Parcours INNER JOIN Sections ON Parcours.Parcours = Sections.Parcours) INNER JOIN Lignes ON Parcours.Ligne = Lignes.Lignes);


Le détail qui a peut etre cloché c'est le champ Parcours que tu n'avais pas préfixé par le nom de table mais l'erreur aurait du concerner, après ma correction de parenthese, l'ambiguite du champ et pas la syntaxe !
 
D'ailleurs si tu avais ouvert Access et fait ta requete dedans en mode graphique (30sec chrono ici) tu aurait sans doute trouvé seul...
 
M'enfin bon, ça marche c'est déjà ça.
 
a+

n°319099
Mad666
Posté le 27-02-2003 à 12:07:33  profilanswer
 

ah merci pour la précision du nom de la table Parcours, je n'y avait pas pensé. C'est vrai, que la deuxième fois je l'ai précisé.
 
C'est noté, j'essaierai avec ACCESS la prochaine fois avant. :jap:


Message édité par Mad666 le 27-02-2003 à 12:11:28

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL ACCESS] problème de syntaxe avec les JOIN

 

Sujets relatifs
Problème SQL sous OracleXSL + Javascript -> probleme :(
Problème en VBA pour remplir une case ! ! ! ![SQL] une pitite requete ....
[VB] Vérification d'écriture existante avant enregistrement avec SQL[vba + Access] copier un champ vers un autre
[SQL] ecrire un path ds une table Pages\erreur.htm[NASM] problème pour utiliser le port 378h (parallele) sous XP ...
[ACCESS] formatage d une date dans une requete ajout 
Plus de sujets relatifs à : [SQL ACCESS] problème de syntaxe avec les JOIN


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR