Supprimer l'apostrophe dans une chaine de caractere

ramm50 Messages postés 3 Date d'inscription mercredi 3 mars 2004 Statut Membre Dernière intervention 25 octobre 2004 - 21 oct. 2004 à 14:06
trecylafierte Messages postés 23 Date d'inscription vendredi 20 août 2010 Statut Membre Dernière intervention 28 septembre 2010 - 7 sept. 2010 à 16:14
Salut tout le monde,

je suis entrain d'ecrire un programme qui insert dans une BD une chaine de caractère recupéré d'un champ texte .
le problème c'est que l'utilisateur peut saisir un apostrophe dans le champ.
Alors es-qu'il ya une fonction en vb qui permet de supprimer l'apostrophe dans un chaine de caractère ?

Merci de votre aide .
A voir également:

5 réponses

cs_lim Messages postés 329 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 10 mai 2014 7
21 oct. 2004 à 14:28
Salut

utilise la fonction replace(,)

tu remplaces l'apostrophe par 2 apostrophes

@+
LIM
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
21 oct. 2004 à 14:38
Dim ma_chaine As String
Dim returnString As String

ma_chaine = "fjhgdfjh'djfhdgf'dsjfhg"

returnString = Replace(ma_chaine, "'", "", 1, , vbTextCompare)

MsgBox returnString

Manu
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
21 oct. 2004 à 14:40
juste pour info, mon code permet de supprimer les apostrophes, si tu veux remplacer les apostrophes par quelquechose :

returnString = Replace(ma_chaine, "'", "quelquechose", 1, , vbTextCompare)

Manu
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
21 oct. 2004 à 20:13
Au moment de l'enregistrement dans la table, l'apostrophe ne pose aucun problème.

rs.addnew
rs!champ = "L'HAY LES ROSES"
rs.update

Tu auras L'HAY LES ROSES dans ton champ.
Si tu remplaces, à l'enreg par 2 apostrophes, tu auras dans le champ L''HAY LES ROSES et si tu le supprimes, tu auras LHAY LES ROSES. A toi de choisir.

Le problème des apostrophes se pose surtout lors d'une requête de type select avec des critères.
Dans le cas où tu gardes l'apostrophe, il faudra construire la requete comme ça :

"select * from table where ville = '" & replace(variable,"'","''") & "'"

Fait un copier coller de cette ligne dans ton éditeur pour voir les différences entre guillemets et apostrophes parce que là, on voit pas trop.

Personnellement, je préfère garder les apostrophes de manière à avoir la bonne orthographe et j'utilise ça.

Pour terminer, à l'enregistrement, si tu dois avoir des problèmes ça sera si tu permets à l'utilisateur de saisir des guillemets.

Maintenant, tu as une solution radicale, dans le keypress de tes textbox, tu testes les caractères saisis et tu les remplaces à la volée par ce que tu veux :

Exemeple :

Private Sub Text1_KeyPress(KeyAscii As Integer)

Select Case KeyAscii
Case 39 ' code de l'apostrophe
KeyAscii = 32 ' on remplace par un espace
' ou KeyAscii = Asc(" ") si tu ne connais pas les codes ascii
Case 34 ' code du guillemet
KeyAscii = 32 ' on remplace par un espace
End Select

End Sub

Un avantage, le temps utilisé pour le remplacement (même minime) est pris au moment de la saisie et pas au moment du traitement.
Un désavantage, souvent majeur, l'utilisateur se demande si son clavier n'est pas naze.

Cordialement, CanisLupus
0

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

Posez votre question
trecylafierte Messages postés 23 Date d'inscription vendredi 20 août 2010 Statut Membre Dernière intervention 28 septembre 2010
7 sept. 2010 à 16:14
SVP j'ai le même problème que ramm50.Mais moi j'aimerai que l'utilisateur puisse saisir avec l'apostrophe sans que ce dernier soit supprimé car si c'est le cas j'aurai un problème avec mes affichages.SVP aidez moi c'est urgent.Y'a t'il un code qui permet de saisir avec l'apostrophe et de l'envoyer dans un SGBD(access par exemple)
Merci d'avance.
0
Rejoignez-nous