Supprimer l'apostrophe dans une chaine de caractere

Signaler
Messages postés
3
Date d'inscription
mercredi 3 mars 2004
Statut
Membre
Dernière intervention
25 octobre 2004
-
Messages postés
23
Date d'inscription
vendredi 20 août 2010
Statut
Membre
Dernière intervention
28 septembre 2010
-
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 .

5 réponses

Messages postés
329
Date d'inscription
jeudi 20 novembre 2003
Statut
Membre
Dernière intervention
10 mai 2014
4
Salut

utilise la fonction replace(,)

tu remplaces l'apostrophe par 2 apostrophes

@+
LIM
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
19
Dim ma_chaine As String
Dim returnString As String

ma_chaine = "fjhgdfjh'djfhdgf'dsjfhg"

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

MsgBox returnString

Manu
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
19
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
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
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
Messages postés
23
Date d'inscription
vendredi 20 août 2010
Statut
Membre
Dernière intervention
28 septembre 2010

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.