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 :

  1. Ouvrez Visual Basic Editor (si ce n’est pas déjà le cas), par Alt + F11 ou Ctrl + G.
  2. 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 ! 😉

Compilation ?

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).

Attention

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.

Vous aimerez aussi...

4 réponses

  1. DESRUES dit :

    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 ????

    • Hervé Inisan dit :

      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).

  2. Hervé Inisan dit :

    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).

  3. Plombier dit :

    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

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *