Marre des concaténations ?
La concaténation, c’est un exercice à connaître en Visual Basic, ça sert tout le temps ! Mais ça donne souvent une syntaxe compliquée à écrire et à debugger, surtout si vous êtes débutant !
A l’aide d’une fonction
StringFormat()
inspirée duString.Format()
de .NET, vous verrez qu’on peut faire bien plus simple. Finis les maux de tête !
Avant
A titre d’exemple, voici un bout de code qui construit une chaîne SQL par concaténations classiques sur un nombre, un texte, une date :
1 2 3 4 |
Dim sql As String sql = "DELETE * FROM [la table] WHERE [champ1] = " & valeur1 _ & " AND [champ2] = '" & valeur2 _ & "' AND [champ3] = " & DateUS(valeur3) & ";" |
Après
Et la même chose avec StringFormat()
:
1 2 3 |
Dim sql As String sql = "DELETE * FROM [la table] WHERE [champ1] = {0} AND [champ2] = '{1}' AND [champ3] = {2};" sql = StringFormat(sql, valeur1, valeur2, DateUS(valeur3)); |
Vous serez d’accord que la 2ème version est plus facile à lire (donc à mettre au point) : on y voit beaucoup plus clairement le code SQL complet.
Plus de détails ?
Si vous êtes tenté par StringFormat()
, plusieurs articles sont disponibles sur self-access.com :
- Pour suivre le film en version longue (et tout savoir sur la concaténation), cliquez sur ce lien : L’art de la concaténation en VB/VBA.
- Pour le résumé rapide, suivez plutôt ce lien : Abolir les concaténations.
Bonjour,
Tout d’abord, bravo pour votre travail. je me suis sorti de plusieurs casse-tête grâce à vous.
Sur cette page, les liens ne fonctionnent plus, serait-il possible d’avoir le code de la fonction stringformat() qui me sera utile pour passer le chapitre sauvegarde.
merci,
Ben
Merci pour le retour ! 🙂
Voici le code de la fonction StringFormat() :