spacest
Messages postés11Date d'inscriptionlundi 24 juin 2002StatutMembreDernière intervention13 avril 2005
-
10 mars 2003 à 10:05
Pikashoute
Messages postés91Date d'inscriptionjeudi 27 février 2003StatutMembreDernière intervention23 décembre 2005
-
10 mars 2003 à 15:36
Bonjour et bonne semaine,
Je dois envoyer une requete du style:
sqlverif = "select * from maTable where NOM='" & cboChoixNom & "'"
Set rs = db.OpenRecordset(sqlverif)
mais si cboChoixNom contient une apostrophe (ex: cbochoixnom="l'arbre") cela crée une erreur.
Comment contourner ce problème, si possible sans modifier chaque apostrophe de ma base de données?
Pikashoute
Messages postés91Date d'inscriptionjeudi 27 février 2003StatutMembreDernière intervention23 décembre 2005 10 mars 2003 à 10:53
j'ai eu le probleme récemment, et j'ai du créer une fonction qui corrige cette erreur :
Public Function AjoutCaractere(ByVal Str_Valeur As String, ByVal Str_Caract As String)
Dim Int_Chaine As Integer
Dim Str_Chaine As String
Dim Str_Chaine_Suiv As String
Int_Chaine = InStr(1, Str_Valeur, "'")
If Int_Chaine = 0 Then
AjoutCaractere = Str_Valeur
Else
While Int_Chaine > 0
Int_Chaine = InStr(1, Str_Valeur, "'")
If Int_Chaine = 0 Then
Str_Chaine = Str_Valeur
Else
Str_Chaine = Left(Str_Valeur, Int_Chaine)
End If
Str_Chaine_Suiv = Str_Chaine_Suiv & Str_Chaine & "'"
Str_Valeur = Right(Str_Valeur, Len(Str_Valeur) - Int_Chaine)
End While
AjoutCaractere = Left(Str_Chaine_Suiv, Len(Str_Chaine_Suiv) - 1)
End If
End Function
cette fonction ajoute un deuxième quote. mais quand tu regardes dans ta base de données il n'en apparait qu'une seule. C'est magique !!!
Donc pour que ton code marche voici ce que tu dois ecrire apres avoir créer cette fonction :
sqlverif = "select * from maTable where NOM='" & ajoutcaractere(cboChoixNom,"'") & "'"
spacest
Messages postés11Date d'inscriptionlundi 24 juin 2002StatutMembreDernière intervention13 avril 2005 10 mars 2003 à 15:18
Merci pour ta réponse, ça me fait gagner un temps précieux!
J'ai juste changé deux trois choses: j'ai remplacé "'" par strcaract dans la fonction (sinon ça ne servait pas), et while end par wend (sinon ça ne marche pas!)