MalaBar419
Messages postés5Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention18 janvier 2005
-
17 mars 2004 à 02:34
Mohammadothmane
Messages postés4Date d'inscriptionsamedi 30 octobre 2010StatutMembreDernière intervention26 mai 2011
-
27 déc. 2010 à 14:51
salut jai un souci en vb avec la génération de requêtes sql. Voici un exemple de code:
Ce qui veut dire que si le contenue de TxtNom est "Pau" on a:
sqlAjout = "INSERT INTO particuliers VALUES(null, 'Paul')"
Le pb c que si la valeur de txtnom comporte un apostrof (ex: "Aujourd'hui") on obtient :
sqlAjout = "INSERT INTO particuliers VALUES(null, 'Aujourd'hui')" , ce qui va générer une erreur dans la syntaxe sql à cause de l'apostrof en tro... :sad) comment y remédier?
merci d'avance
cmusy
Messages postés33Date d'inscriptionjeudi 18 avril 2002StatutMembreDernière intervention17 mai 2004 17 mars 2004 à 08:24
Il faut vérifier (InStr devrait convenir) si TxtNom contient un '
Si oui, le doubler, par exemple : "Aujourd'hui" doit devenir "Aujourd''hui"
Je pense que la fonction Replace peut faire ça.
cmusy
Messages postés33Date d'inscriptionjeudi 18 avril 2002StatutMembreDernière intervention17 mai 2004 17 mars 2004 à 08:25
Il faut vérifier (InStr devrait convenir) si TxtNom contient un '
Si oui, le doubler, par exemple : "Aujourd'hui" doit devenir "Aujourd''hui"
Je pense que la fonction Replace peut faire ça.
jeromepol49
Messages postés51Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 1 juin 2004 17 mars 2004 à 10:03
J'ai eu ce pb et voila le bout de code pour convertir. En fait, il faut convertir le code asccii 39 en 180 car le caractère apostrophe est utilisé pour délimiter les chaines de caractères sous access.
'* Convertir le caractère apostrophe (') *
'* Dans une BDD le délimiteur pour un champ texte est ' (ASCII=39)=> remplacer par ASCII(180)*
Public Function ConvCaractere(chaine As String) As String
Dim i As Integer
For i = 1 To Len(Trim(chaine))
'Si le caractère est ' on le remplace
If Asc(Mid(chaine, i, 1)) = 39 Then
Mid(chaine, i, 1) = Chr(180)
End IfNext i
ConvCaractere = UCase(chaine)
End Function
Mohammadothmane
Messages postés4Date d'inscriptionsamedi 30 octobre 2010StatutMembreDernière intervention26 mai 2011 27 déc. 2010 à 14:51
Merçi Merçi baucoup mon ami jeromepol49 pour l'astuce vraimenet tu es tres dangereaux hhhh par ce que j'ai ce problème et j'ai pas trouvé une solution pour l résoudre mais apres l'exicution de ce code l'envoie des données sa marche bien
et pour moi jai essaye avec 2 textbox et un bouton le bouton contient le code suivant:
Dim chaine, ConvCaractere As String
chaine = TextBox1.Text
Dim i As Integer
For i = 1 To Len(Trim(chaine))
'Si le caractère est ' on le remplace
If Asc(Mid(chaine, i, 1)) = 39 Then
Mid(chaine, i, 1) = Chr(180)
End If
Next i
ConvCaractere = UCase(chaine)
TextBox1.Text = chaine