Les guillemets dans un code SQL

Résolu
cs_observatoire Messages postés 75 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 23 août 2006 - 7 juil. 2006 à 11:03
cs_observatoire Messages postés 75 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 23 août 2006 - 7 juil. 2006 à 13:53
Bonjour,
Je suis sur un formulaire Access, et je code du SQL en VBA. Mon problème c'est que j'intègre dans un code le nom d'une commune qui peut prendre une apostrophe, ce qui chamboule l'équilibre des guillemets/apostrophes du code. Je ne sais pas s'il est possible de remplacer un système de guillemets/apostrophes par un autre...

txt22 = ZonTxt.text

MonSql = " SELECT "
MonSql = MonSql & " Table1.*"
MonSql = MonSql & " FROM Table1"
MonSql = MonSql & " IN 'MaBase' "
MonSql = MonSql & " WHERE (((Table1.CdCom)= ' " & txt22 & " ')) ; "

txt22 représente une liste de noms de communes, qui peuvent contenir ou non une apostrophe, ce qui donne :
MonSql = " SELECT  Table1.*  FROM Table1 IN 'MaBase' "
MonSql = MonSql & " WHERE (((Table2.CdCom)= ' Saint-Truc-sur-l'eau')) ; "

8 réponses

BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
7 juil. 2006 à 11:28
'lut
un truc comme ca doit marcher.

MonSql = MonSql & " WHERE (((Table2.CdCom)=" & chr(34) & "Saint-Truc-sur-l'eau" & chr(34) & ")) ; "

++

BasicInstinct
3
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 33
7 juil. 2006 à 11:17
essaie en utilisant un replace. Tu trouveras des exemples sur le forum

(Si la réponse vous convient, appuyez sur réponse acceptée...)

Il y a plusieurs facon d'être con ,mais un con choisit toujours la pire<>
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
7 juil. 2006 à 11:18
Salut,

Essaie de doubler les caractère spéciaux.en utilisant replace

Soit

txt22 = Replace(ZonTxt.Text, "'", "''")
MonSql = " SELECT "
MonSql = MonSql & " Table1.*"
MonSql = MonSql & " FROM Table1"
MonSql = MonSql & " IN 'MaBase' "
MonSql = MonSql & " WHERE (((Table1.CdCom)= ' " & txt22 & " ')) ; "

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée, Règlement/FONT>
0
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 33
7 juil. 2006 à 11:27
Julien t'abuse lol!
Moi je lui dit de chercher sur le forum et toi tu lui donne la réponse! On va pas s'entendre tous les deux !!! mdr!

(Si la réponse vous convient, appuyez sur réponse acceptée...)

Il y a plusieurs facon d'être con ,mais un con choisit toujours la pire< body>
0

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

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
7 juil. 2006 à 11:32
> tof008: Pas fait exprès les réponse se sont croisée. mais comme j'ai trouvé la question bien formulée (Ce qui est de plus en plus rare) je me suis permis de le mettre plus sur la voix (et ce n'est pas dit que cela règle son problème)

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée, Règlement/FONT>
0
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 33
7 juil. 2006 à 11:35
Au moins ca lui donnera un coup de pouce! Puis c'est vrai que l'effort de formulation de la question merite un interet particulier!!!!


mais normalement ce que tu lui a donné marche. J'ai eu le même problême et je l'ai arrangé comme ca! (en cherchent au préalable sur le forum bien sur!!!)

(Si la réponse vous convient, appuyez sur réponse acceptée...)

Il y a plusieurs facon d'être con ,mais un con choisit toujours la pire< body>
0
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 33
7 juil. 2006 à 11:37
Mais il peut aussi faire comme ca : WHERE (((Table2.CdCom)= replace(' Saint-Truc-sur-l'eau','"',""")) ; "
ca devrait marcher!

(Si la réponse vous convient, appuyez sur réponse acceptée...)

Il y a plusieurs facon d'être con ,mais un con choisit toujours la pire< body>
0
cs_observatoire Messages postés 75 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 23 août 2006
7 juil. 2006 à 13:53
OK et Merci de tout votre engouement!
Mais je retiendrais plutôt la solution de BasicInstinct qui marche plutôt pas mal et m'évite de changer la forme de mon texte.
Pour info je connaissais déjà un peu "replace", donc c'était pas la peine de se chamailler pour si peu. J'avais un peu pensé à remplacer ' par " par une autre méthode mais ça ne me convenait pas trop du point de vue de la forme!
C'est marrant comme ça a l'air évident pour vous que ce sont surtout des mecs qui viennent sur ce site!...
0
Rejoignez-nous