Compilation du code VBA
Le saviez-vous ?
Si vous écrivez du code Visual Basic, vous allez sans doute laisser traîner quelques fautes, qui peuvent être :
- des erreurs d’écriture,
- des variables non déclarées,
- des appels incorrects de procédures ou de fonctions,
- etc.
Pour détecter ce type d’erreurs, vous pouvez compiler le code VBA de votre application : ça prend 1 seconde ! Faites le test sur votre base :
- Ouvrez Visual Basic Editor (si ce n’est pas déjà le cas), par
Alt
+F11
ouCtrl
+G
. - Cliquez sur le menu Débogage / Compiler.
Si des erreurs s’affichent, c’est que le code de votre base contient des erreurs. Corrigez, puis recompilez (jusqu’à ce qu’aucune erreur ne soit signalée, et que le menu Compiler devienne grisé). Ne laissez pas tourner une application dont le code ne se compile pas, vous aurez des (mauvaises) surprises un jour ! 😉
La compilation consiste à transformer votre code source en « pseudo-code » qui pourra être exécuté par Access. Elle se fait de toute façon automatiquement, dès que du VBA doit être exécuté.
Mais le fait de la lancer manuellement permet de valider une partie de votre code (plutôt que de tomber sur une erreur au moment où sa ligne est traitée).
Bien sûr, la compilation ne détecte pas les erreurs d’algorithme, de logique, et autres, qui se produiront à l’exécution. Mais ça permet déjà de déminer le terrain !
D’autre part, la détection des variables non déclarées ne se fait que si l’ordre Option Explicit
figure en tête de vos modules VBA. Voir l’article De l’intérêt de Option Explicit pour plus de détails.
Bonjour,
J’utilise toujours Access 2003 et je viens de tester la fonction de débogage. Je constate que les erreurs
portent sur les lignes de fin de procédure proposées par Access lui-même du genre :
Err_Commande103_Click:
MsgBox err.Description
Or ces commandes son générées par Access directement !!!
Explication ????
Il n’y a pas d’erreur sur ces lignes-là, prises hors contexte, mais elles n’ont d’intérêt que dans un traitement d’erreur (un On Error).
Maintenant, est-ce qu’il peut manquer quelque chose au-dessus ou au-dessous ?
(sans l’ensemble du code, je ne peux pas me prononcer).
Plombier (?) > Merci pour le retour, je vais pointer ça.
Pas de problème pour parler de SelfAccess sur Facebook (il y a d’ailleurs aussi une page SelfAccess sur Facebook).
Agréable ce blog; néanmoins j’ai pu voir qu’il y a de nombreux liens qui ne marchent pas sur les billets plus vieux.
Puis je faire un peu de publicité de votre site sur mon Facebook ?
Amicalement