Nettoyage de chaine pour requete sql

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 111 fois - Téléchargée 27 fois

Contenu du snippet

Après lecture du post de mestari, j'ai décidé de mettre cette fonction, toute bête mais que j'utilise dans toutes mes requêtes ("select * from XXXX where YYYY = escStr(text1.text)", par exemple)

Je ne sais pas si c'est déja en quarante exemplaires sur le site, mais ça peut toujours servir ...

Source / Exemple :


Public Function escStr(ByVal chaine As String) As String
    Dim tmp As String ' La déclaration explicite fait gagner du temps par rapport à la déclaration implicite qui crée un Variant
    tmp = Trim$(chaine) ' Suppression des espaces en début et fin de chaîne, voir le commentaire de Renfield
    tmp = Replace$(tmp, "  ", " ")  ' Suppression des doubles espaces (erreur de saisie fréquente chez l'utilisateur qui ne retrouve plus ses données par la suite)
    escStr = Replace$(tmp, "'", "''") ' Dédoublage des '
End Function

Conclusion :


Merci à Renfield pour ton explication, j'ai mis la source à jour

MAJ du 26/02/2004 -> Spécifier que le paramètre est de type String fait aussi gagner du temps

A voir également

Ajouter un commentaire Commentaires
Messages postés
122
Date d'inscription
mercredi 25 février 2004
Statut
Membre
Dernière intervention
2 juillet 2014

C'est marrant l'histoire du $, très très bon à savoir merci !
Messages postés
107
Date d'inscription
vendredi 8 novembre 2002
Statut
Membre
Dernière intervention
28 mars 2011

Bah merci, c bizarre mais j'en avait besoin aujourd'hui de la fonction trim pour mes requetes, la source tombe bien...merci
Messages postés
231
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
26 février 2010

Merci
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
Réponse a ta question, OUI, un Trim$ te ferait gagner du temps.
Comme avec toutes les fonctions qui peuvent s'écrire avec un $ (Dir /Ucase /LCase / Chr / Right /Left /Space / Hex / Mid .........)

en fait, ces fonctions renvoient un type String, si elles sont affublées d'un $. Dans le cas contraire, elle renvoient un Variant, ce qui force VB a devoir faire un transtypage (pour obtenir.... un string...).

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.