Ma chaine sql est incorrecte [Résolu]

Signaler
Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2017
-
Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2017
-
Bonsoir tout le monde,

J'ai un problème avec ma chaine sql en VB :
Set rsTable BDOuvrirTable("SELECT * FROM clients WHERE login "" " & login & " ""  AND mdp = "" " & mdp & """, True)

J'obtiens le message :

"syntax error"

Merci d'avance pour votre aide.

beegeezzz

2 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Salut
En fait, le problème est dans l'utilisation des " à l'intérieur d'une chaine elle-même délimitée par des ".
Dans ta chaine, tu doubles bien les " pour insérer, mais regarde le résultat :
Ta chaine   "SELECT * FROM clients WHERE login "" " & login & " ""  AND mdp "" " & mdp & "" "va donner (avec login toto et mpd pass)   "SELECT * FROM clients WHERE login " toto "  AND mdp " pass "
Il y a un problème : Tu as ajouté un espace devant et derrière les textes, normal qu'il ne les trouve pas.

Pour simplifier les choses, SQL accepte le symbole ' comme délimiteur de chaine.
Comme ça, l'usage des doubles " est inutile et simplifie l'écriture :
   "SELECT * FROM clients WHERE login = '" & login & "' AND mdp = '" & mdp & "'"

Mais fait bien attention à ne pas ajouter d'espace dans une zone que SQL reconnaitra comme une chaine.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2017
1
Salut Jack,

Un super grand merci pour ta réponse hypère détaillée.

J'ai appris quelque chose grâce à ta réponse (').

Merci encore et bon WE.

beegeezzz