Insertion d'un caractère spécial dans une DB

cs_drakkard Messages postés 99 Date d'inscription lundi 20 juin 2005 Statut Membre Dernière intervention 20 janvier 2009 - 23 août 2005 à 10:03
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 23 août 2005 à 17:19
Bonjour, bonjour,

je galère pour insérer une chaine contenant le \ .

J'ai essayé '\ puis \\ mais cela ne fonctionne pas...

l'erreur reçue est :
Microsoft JET Database Engine: Erreur de syntaxe dans l'instruction INSERT INTO

Une idée ????

Merci d'avance

7 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 août 2005 à 10:50
Essaie
& chr(92)

ciao...
BruNews, MVP VC++
0
IG_Snoop Messages postés 14 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 8 septembre 2005
23 août 2005 à 12:35
Essaye ConvertStrg(maChaine)



+
0
cs_drakkard Messages postés 99 Date d'inscription lundi 20 juin 2005 Statut Membre Dernière intervention 20 janvier 2009
23 août 2005 à 12:36
heuuuu, pour info ma chaine est du genre "toto\titi\tata"

je ne vois pas ce que je vais faire avec le chr(92)

Merci d'avance pour toutes les suggestions qui seront proposées !!!
0
IG_Snoop Messages postés 14 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 8 septembre 2005
23 août 2005 à 14:44
Désolé j'ai zappé le code ....

<hr size="2" width="100%">Public Function ConvertStrg(ByRef myString As String) As String


Dim Index As Long


Dim StringLen As Long


Dim ResultString As String


Dim MyChar As String


StringLen = Len(myString)


For Index = 1 To StringLen


MyChar = Mid(myString, Index, 1)


If MyChar = "'" Then


ResultString = ResultString + "''"


Else


ResultString = ResultString + MyChar


End If


Next Index


ConvertStrg = "'" + ResultString + "'"


End Function


<hr size="2" width="100%">

à mon avis ce qu'il manque c'est juste les simples côtes autour de la chaîne : 'toto\titi\tata'



j'espère que c'est ça et que j'ai rien oublié!! :)
0

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

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
23 août 2005 à 15:19
c'est ta requête qui bloque? ou son execution....
c'est à dire que c'est "SELECT ...blabla" avec un \ perdu?
si c'est le cas, tu as juste à le mettre d'abord en variable

avant : "SELECT ...WHERE ... = titi\toto" 'déjà les côtes seraient fausses, mais bon....
après : machaine "titi\toto" ...WHERE... machaine

PCPT
0
cs_drakkard Messages postés 99 Date d'inscription lundi 20 juin 2005 Statut Membre Dernière intervention 20 janvier 2009
23 août 2005 à 15:25
Bon alors là j'y comprends rien !!!!

je viens de faire un test juste avec la chaine contenant le backslash.
cela fonctionne, sans même avoir dû doubler le backslash !!!!

Haaaaaa, putain de merde !!!!!
Heeuuu pardon pardon !!!!

Je viens de comprendre, le problème était que j'avais nommé un champ : User.
Mon pb était là !!!
Maintenant cela fonctionne

Merci de votre aide !!!
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
23 août 2005 à 17:19
Salut
Pour faire des tests (Where) qui recherchent des caractères spéciaux, il faut les encadrer avec des crochets droits [ et ]
Exemple pour rechercher 'toto%abc' :
... Where monChamp Like 'toto[%]abc'

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

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
Rejoignez-nous