SQL et caractères spéciaux

Le
Rlapt
Bonjour à tous,

Dans une requête SQL, que doit on faire pour passer des caractères comme le
guillemet et l'apostrophe dans un texte.

Ex Dans une clause SQL :
"WHERE ((([Texte base].[Texte de base])='" & MaFeuille.Cells(I, 1) & "' ));"

où le texte de MaFeuille.Cells(I, 1) est égal à -> l'objet "Essai"
C'est à dire un texte comprenant au moins une apostrophe et un guillemet


question également valable pour INSERT INTO. Mais les solutions doivent être
identiques.

Merci d'avance
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Eric
Le #6197731
Bonsoir,

Quelque chose comme :
WHERE [Texte base].[Texte de base]=""" & MaFeuille.Cells(I, 1) & """;"

Maintenant tu peux faire aussi:
WHERE [Texte base].[Texte de base])=" & Chr(34)& MaFeuille.Cells(I, 1)
& chr(34) & ";"
Chr(34) est le caractère guillemet.

Bonjour à tous,

Dans une requête SQL, que doit on faire pour passer des caractères comme le
guillemet et l'apostrophe dans un texte.

Ex Dans une clause SQL :
"WHERE ((([Texte base].[Texte de base])='" & MaFeuille.Cells(I, 1) & "' ));"

où le texte de MaFeuille.Cells(I, 1) est égal à -> l'objet "Essai"
C'est à dire un texte comprenant au moins une apostrophe et un guillemet


question également valable pour INSERT INTO. Mais les solutions doivent être
identiques.

Merci d'avance


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Eric
Le #6197711
.../...
Aie, j'avais pas vu apostrophe ET guillemet
Donc pas bon.

Bonsoir,

Quelque chose comme :
WHERE [Texte base].[Texte de base]=""" & MaFeuille.Cells(I, 1) & """;"

Maintenant tu peux faire aussi:
WHERE [Texte base].[Texte de base])=" & Chr(34)& MaFeuille.Cells(I, 1)
& chr(34) & ";"
Chr(34) est le caractère guillemet.

Bonjour à tous,

Dans une requête SQL, que doit on faire pour passer des caractères
comme le guillemet et l'apostrophe dans un texte.

Ex Dans une clause SQL :
"WHERE ((([Texte base].[Texte de base])='" & MaFeuille.Cells(I, 1) &
"' ));"

où le texte de MaFeuille.Cells(I, 1) est égal à -> l'objet
"Essai" C'est à dire un texte comprenant au moins une apostrophe et
un guillemet


question également valable pour INSERT INTO. Mais les solutions
doivent être identiques.

Merci d'avance




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Eric
Le #6197701
re,

En testant quelque chose comme:
where [Texte de base]=" & Chr(34) & Replace(MaFeuille.Cells(I, 1),
Chr(34), Chr(34) + Chr(34)) & Chr(34)

Tu encadres par des " {qui est le chr(34)} ce qui éliminera le problème
de l'apostrophe et tu doubles les guillemets dans la chaine par la
fonction Replace:
Replace(MaFeuille.Cells(I, 1), Chr(34), Chr(34) + Chr(34))

Il y a peut-être plus simple mais j'ai pas ça en tête.

Bonsoir,

Quelque chose comme :
WHERE [Texte base].[Texte de base]=""" & MaFeuille.Cells(I, 1) & """;"

Maintenant tu peux faire aussi:
WHERE [Texte base].[Texte de base])=" & Chr(34)& MaFeuille.Cells(I, 1)
& chr(34) & ";"
Chr(34) est le caractère guillemet.

Bonjour à tous,

Dans une requête SQL, que doit on faire pour passer des caractères
comme le guillemet et l'apostrophe dans un texte.

Ex Dans une clause SQL :
"WHERE ((([Texte base].[Texte de base])='" & MaFeuille.Cells(I, 1) &
"' ));"

où le texte de MaFeuille.Cells(I, 1) est égal à -> l'objet
"Essai" C'est à dire un texte comprenant au moins une apostrophe et
un guillemet


question également valable pour INSERT INTO. Mais les solutions
doivent être identiques.

Merci d'avance




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Rlapt
Le #6197691
Merci de ta réponse.
Je teste demain et je te tiens a courant.
Merci encore


re,

En testant quelque chose comme:
where [Texte de base]=" & Chr(34) & Replace(MaFeuille.Cells(I, 1),
Chr(34), Chr(34) + Chr(34)) & Chr(34)

Tu encadres par des " {qui est le chr(34)} ce qui éliminera le problème
de l'apostrophe et tu doubles les guillemets dans la chaine par la
fonction Replace:
Replace(MaFeuille.Cells(I, 1), Chr(34), Chr(34) + Chr(34))

Il y a peut-être plus simple mais j'ai pas ça en tête.

Bonsoir,

Quelque chose comme :
WHERE [Texte base].[Texte de base]=""" & MaFeuille.Cells(I, 1) & """;"

Maintenant tu peux faire aussi:
WHERE [Texte base].[Texte de base])=" & Chr(34)& MaFeuille.Cells(I, 1)
& chr(34) & ";"
Chr(34) est le caractère guillemet.

Bonjour à tous,

Dans une requête SQL, que doit on faire pour passer des caractères
comme le guillemet et l'apostrophe dans un texte.

Ex Dans une clause SQL :
"WHERE ((([Texte base].[Texte de base])='" & MaFeuille.Cells(I, 1) &
"' ));"

où le texte de MaFeuille.Cells(I, 1) est égal à -> l'objet
"Essai" C'est à dire un texte comprenant au moins une apostrophe et
un guillemet


question également valable pour INSERT INTO. Mais les solutions
doivent être identiques.

Merci d'avance




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr





Rlapt
Le #6197221
Bonsoir,

Merci les premiers essais fonctionnent correctement.
Pour ceux qui sont intéressés voici la fonction Replace lorsque l'on
travaille sous Excel avec DAO.

Function Repalce(Texte As String, CaraRempl As Variant, CarRempl As Variant)
As String
Dim Pos As Integer

Pos = InStr(Texte, CaraRempl)
While Pos > 0
Texte = Mid(Texte, 1, Pos - 1) & CarRempl & Mid(Texte, Pos + 1)
Pos = InStr(Pos + Len(CarRempl), Texte, CaraRempl)
Wend
Repalce = Texte
End Function

Merci encore pour l'aide.


RLAPT

Bonjour à tous,

Dans une requête SQL, que doit on faire pour passer des caractères comme le
guillemet et l'apostrophe dans un texte.

Ex Dans une clause SQL :
"WHERE ((([Texte base].[Texte de base])='" & MaFeuille.Cells(I, 1) & "' ));"

où le texte de MaFeuille.Cells(I, 1) est égal à -> l'objet "Essai"
C'est à dire un texte comprenant au moins une apostrophe et un guillemet


question également valable pour INSERT INTO. Mais les solutions doivent être
identiques.

Merci d'avance


Publicité
Poster une réponse
Anonyme