Problème apostrophe,requete SQL sous Access

Messages postés
130
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
8 juillet 2008
- - Dernière réponse : themaste
Messages postés
130
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
8 juillet 2008
- 2 oct. 2003 à 11:04
Bonjour a tous!
Comment faire pour mettre des apostrophes dans des requete SQL snas que ca plante?
J'ai trouve un post a ce sujet, mais la solution proposé ne peux pas fonctionner.

En effet, il est dit d'utiliser la fonction "replace", mais elle n'existe pas sous access....

Comment faire?

*Merci!!
Afficher la suite 

9 réponses

Messages postés
178
Date d'inscription
lundi 17 juin 2002
Statut
Membre
Dernière intervention
2 octobre 2007
0
Merci
baaaaaa feinter le bougre ;-)
remplace les double quots par des doubles doubles quotes

Ex :

Query="Select * from Client"

Cela donne donc :

Query=""Select * from Client""

Ca a l'air de rien comme ca mais ca marche :big)

@ plus!

Le jour où la merde vaudra de l'or, les pauvres naîtons sans trou du cul!
Messages postés
130
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
8 juillet 2008
1
0
Merci
Ca marche pas..sniff...
J'ai:
DoCmd.RunSQL "INSERT INTO CONDITION_SELECTION (NOM_DONNEE, OPERATION) VALUES ('" & Me!ComboDonnee & "', '" & Me!comboOpeSel & "')"

si je rajoute des ", il aime pas, il met tout en rouge!
Messages postés
16
Date d'inscription
jeudi 11 juillet 2002
Statut
Membre
Dernière intervention
31 juillet 2008
0
Merci
Rajoute la fonction de ce type là

Public Function Convert_String(Chaine As Variant) As Variant
'Fonction de remplacement de ' en '' dans une chaine de type String ...
Chaine = IIf(IsNull(Chaine), "", Chaine)
Convert_String= Replace(Chaine, "'", "''")
End Function

où tu passe la valeur de ton combo au sein même de ta définition de ta reqête

"INSERT INTO CONDITION_SELECTION (NOM_DONNEE, OPERATION) VALUES ('" & Convert_String(Me!ComboDonnee) & "', '" & Convert_String(Me!comboOpeSel) & "')"

A+ et bonne prog
BLU
Messages postés
178
Date d'inscription
lundi 17 juin 2002
Statut
Membre
Dernière intervention
2 octobre 2007
0
Merci
Arf... les méandres du VBA...

Là je ne suis pas sur de mon coup mais as tu essayé le signe "$"?

Sinon je ne sais pas... Dsolé :blush)

Le jour où la merde vaudra de l'or, les pauvres naîtons sans trou du cul!
Messages postés
130
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
8 juillet 2008
1
0
Merci
.. :sad) :sad) :sad) :sad) , mais le $ ne marche pas....
Et dans la fonction donnée par BLU, je me retrouve devt le pbl que replace existe pas....
Messages postés
178
Date d'inscription
lundi 17 juin 2002
Statut
Membre
Dernière intervention
2 octobre 2007
0
Merci
mmm as tu songé o scuicide? :question) :big)

là je ne sais pas.... Au pire reprend ton projet en VB :clown) parce que là... je ne sais pas Dsolé..

Le jour où la merde vaudra de l'or, les pauvres naîtons sans trou du cul!
Messages postés
130
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
8 juillet 2008
1
0
Merci
C bon j'ai trouve, en tout k grace a vous!!
j'ai modifié la fonction....

******************************
Public Function Convert_String(Chaine As Variant) As String
'Fonction de remplacement de ' en '' dans une chaine de type String ...
Dim ChaineTmp As String
Dim nIndex As Integer
Dim c As String

For nIndex = 0 To Len(Chaine)
'Récupère chaque caractère pour analyse
c = Mid(Chaine, nIndex, 1)
If c = "'" Then
'Ajoute deux fois l'apostrophe
ChaineTmp = ChaineTmp & c & c
Else
'Ne change rien
ChaineTmp = ChaineTmp & c
End If
Next

'Envoie le résultat
Convert_String = ChaineTmp

End Function

****************************

Voili voilou!! J'espere que ca pourra aider!!
Messages postés
16
Date d'inscription
jeudi 11 juillet 2002
Statut
Membre
Dernière intervention
31 juillet 2008
0
Merci
He Désolé,
J'ai lu trop vite
Effectivement pas de replace en vba access ...
:blush)
BLU
Messages postés
130
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
8 juillet 2008
1
0
Merci
une ch'tite erreur de ma part.. pour l'index dans le for, faut partir de 1 et pas de 0 :-p !!