Supprimer l'apostrophe dans une chaine de caractere
ramm50
Messages postés3Date d'inscriptionmercredi 3 mars 2004StatutMembreDernière intervention25 octobre 2004
-
21 oct. 2004 à 14:06
trecylafierte
Messages postés23Date d'inscriptionvendredi 20 août 2010StatutMembreDernière intervention28 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 ?
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
trecylafierte
Messages postés23Date d'inscriptionvendredi 20 août 2010StatutMembreDernière intervention28 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.