Guillements dans une String, dans une variable, utilisée dans une requête sql

Résolu
nenette_cherie Messages postés 17 Date d'inscription jeudi 10 juin 2004 Statut Membre Dernière intervention 28 avril 2006 - 7 févr. 2006 à 15:15
nenette_cherie Messages postés 17 Date d'inscription jeudi 10 juin 2004 Statut Membre Dernière intervention 28 avril 2006 - 7 févr. 2006 à 16:26
Bonjour,

J'ai lu un maximum d'informations avant de poster mais je n'ai pas trouver de réponse. Voici mon code (une partie) :

Private Sub InsertPatProsite()
Dim query As String
query = "INSERT INTO motifs (tools_number_tool, motif, motif_description, ID_Prosite, AC_Prosite, DO_Prosite, DT_Prosite) VALUES (" _
& rst!number_tools & ", " _
& Chr(34) & pa & Chr(34) & ", " _
& Chr(34) & des & Chr(34) & ", " _
& Chr(34) & id & Chr(34) & ", " _
& Chr(34) & ac & Chr(34) & ", " _
& Chr(34) & pdoc & Chr(34) & ", " _
& Chr(34) & dt & Chr(34) & ");"
CurrentDb.Execute query
End Sub

Les variables sont issus d'un fichier texte que je parse ligne par ligne. Mon problème est que pour certaines description (variable des), il y a des guillemets à l'intérieur de la chaine, "cassant" ma requête sql.
Ex : Lipolytic enzymes "G-D-S-L" family, serine active site
le tout étant une string (variable des)

J'ai donc essayé ceci :

Dim charact As String
charact = "" & Chr(34) & ""
Src = Replace$(montexte, Chr(34), charact)

Sauf que du coup, je remplace un guillemet par .... un guillemet et cela ne sert à rien. Mon objectif étant de passer outre les guillemets dans la string mais de les conserver à leur place pour leur insertion dans la base. Quelqu'un a une idée ?

7 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
7 févr. 2006 à 16:19
il suffit de remplacer chaque quote de tes variables par deux quotes :

query = "INSERT INTO motifs (tools_number_tool, motif,
motif_description, ID_Prosite, AC_Prosite, DO_Prosite, DT_Prosite)
VALUES (" _
& rst!number_tools & ", " _
& "'" & Replace(pa,"'","''") & "', " _
& "'" & Replace(des,"'","''") & "', " _
& "'" & Replace(id,"'","''") & "', " _
& "'" & Replace(ac,"'","''") & "', " _
& "'" & Replace(pdoc,"'","''") & "', " _
& "'" & Replace(dt,"'","''") & "' );"

Renfield
Admin CodeS-SourceS - MVP Visual Basic
3
nenette_cherie Messages postés 17 Date d'inscription jeudi 10 juin 2004 Statut Membre Dernière intervention 28 avril 2006
7 févr. 2006 à 15:23
J'ai aussi essayé de mettre juste Chr(34) à la place des guillemets, mais il écrit vraiment "Chr(34)" dans ma table.... Ceci dit, ça ne bloque plus ma requête sql
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
7 févr. 2006 à 15:39
mets une simple quote .......

query = "INSERT INTO motifs (tools_number_tool, motif,
motif_description, ID_Prosite, AC_Prosite, DO_Prosite, DT_Prosite)
VALUES (" _
& rst!number_tools & ", " _
& "'" & pa & "', " _
& "'" & des & "', " _
& "'" & id & "', " _
& "'" & ac & "', " _
& "'" & pdoc & "', " _
& "'" & dt & "' );"

Renfield
Admin CodeS-SourceS - MVP Visual Basic
0
nenette_cherie Messages postés 17 Date d'inscription jeudi 10 juin 2004 Statut Membre Dernière intervention 28 avril 2006
7 févr. 2006 à 15:47
Merci beaucoup ! je n'avais pas pensé à ça, c'est vraiment plus simple et plus logique...
0

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

Posez votre question
nenette_cherie Messages postés 17 Date d'inscription jeudi 10 juin 2004 Statut Membre Dernière intervention 28 avril 2006
7 févr. 2006 à 15:59
En fait, ta solution marche sur un test que j'ai fait mais ne fonctionne pas sur mon véritable fichier !! En effet, il y a aussi des simples quotes dedans...... As-tu une autre proposition ?
0
nenette_cherie Messages postés 17 Date d'inscription jeudi 10 juin 2004 Statut Membre Dernière intervention 28 avril 2006
7 févr. 2006 à 16:09
De plus, il n'y a pas que ça comme caractères spéciaux.... il y a aussi / par exemple
0
nenette_cherie Messages postés 17 Date d'inscription jeudi 10 juin 2004 Statut Membre Dernière intervention 28 avril 2006
7 févr. 2006 à 16:26
MERCI !! ça fonctionne très bien maintenant !
0