Prob. Requete SQL et VB

cs_seedorf Messages postés 23 Date d'inscription jeudi 7 juin 2001 Statut Membre Dernière intervention 6 mars 2004 - 17 janv. 2002 à 12:12
Makabey Messages postés 152 Date d'inscription mercredi 27 juin 2001 Statut Membre Dernière intervention 11 juillet 2002 - 19 janv. 2002 à 04:01
Salut,
j'ai un prob un peu con, j'execute une requete sql ds mon prob vb et elle est la suivante:STR_SQL "UPDATE CLIENT SET CLIENT.NOM_CLT '" & Trim$(Me.txtNom.Text) & "';"
CONN_BASE_DONNEES.Execute STR_SQL
mais elle marche tres tres tres bien SAUF qd mon Me.txtNom.text contien le caractère appostrophe "'" là elle deconne car il l'ajoute à la chaine et il le prends comme si c'est le début d'un parametre.
y'a t-il une solution standard pour eviter ca?

Merci

Seedorf

6 réponses

Makabey Messages postés 152 Date d'inscription mercredi 27 juin 2001 Statut Membre Dernière intervention 11 juillet 2002 1
17 janv. 2002 à 15:37
Si tu as VB6, utilise
Replace(Trim$(Me.txtNom.Text), "'", "''")
(Remplacer 1 apostrophe par 2)

Sinon vois mes sources, j'ai écrit une fonction pour VB5 et - (mais personne ne l'as testée :'(
0
cs_seedorf Messages postés 23 Date d'inscription jeudi 7 juin 2001 Statut Membre Dernière intervention 6 mars 2004
17 janv. 2002 à 16:04
Salut,
ca marchera pas car ma requete donnera jamais de resultat sinon il donnera un faux resultat, j'ai besoin d'extraire les enregistrement ayant exactement la meme valeur du champ que mon txtNom.text

Y'a t-il autres idées?

seedorf
0
cs_pimousse75 Messages postés 138 Date d'inscription jeudi 17 janvier 2002 Statut Membre Dernière intervention 22 octobre 2002
17 janv. 2002 à 16:39
Public Function DoubleApostrophe(ze_texte As String) As String

Dim n As Integer
Dim buffer As String

For n = 1 To Len(ze_texte)
If Mid(ze_texte, n, 1) = "'" Then
buffer = buffer & "''"
Else
buffer = buffer & Mid(ze_texte, n, 1)
End If
Next n

DoubleApostrophe = buffer

End Function
0
cs_pimousse75 Messages postés 138 Date d'inscription jeudi 17 janvier 2002 Statut Membre Dernière intervention 22 octobre 2002
17 janv. 2002 à 16:39
Public Function DoubleApostrophe(ze_texte As String) As String

Dim n As Integer
Dim buffer As String

For n = 1 To Len(ze_texte)
If Mid(ze_texte, n, 1) = "'" Then
buffer = buffer & "''"
Else
buffer = buffer & Mid(ze_texte, n, 1)
End If
Next n

DoubleApostrophe = buffer

End Function
0

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

Posez votre question
cs_seedorf Messages postés 23 Date d'inscription jeudi 7 juin 2001 Statut Membre Dernière intervention 6 mars 2004
18 janv. 2002 à 10:23
Salut,
oui en effet ca marche et avec les deux methode, en fait les deux ils font la meme chose, mais j'avais pas bien remarqué pour la proposition de makabey alors je m'excuse. merci à makabey et a pimousse75.

Seedorf
0
Makabey Messages postés 152 Date d'inscription mercredi 27 juin 2001 Statut Membre Dernière intervention 11 juillet 2002 1
19 janv. 2002 à 04:01
En fait tu dois comprendre que quand SQL vois deux apostrophes qui se suivent, ça veux dire que c'est pas la fin du paramètre mais que le paramètre lui-même contient un apostrophe, ex:

'l'avion' boum, pcq recherche "l" {param inconnu}
'l''avion' ça marche pcq il vas rechercher "l'avion"
0
Rejoignez-nous