Ouvrir en VBA une base de données protégée par mot de passe

Je dispose d’une base de données MDB protégée par mot de passe. Je souhaiterais l’ouvrir en VBA, à partir d’une autre base. Comment faire ?

Petit rappel

Il existe plusieurs méthodes pour sécuriser une base de données Access. Notamment, quand on parle de mot de passe, on peut :

  • Protéger la base entière par un mot de passe unique (menu Outils / Sécurité / Définir le mot de passe)
  • Protéger la base avec un mot de passe différent pour chaque utilisateur (menu Outils / Sécurité / Assistant Sécurité au niveau utilisateur). C’est ce que Microsoft appelle la « sécurité utilisateur ».

Cet article suppose que la base est protégée par la première méthode (qui n’est pas la meilleure en soi, mais c’est un autre sujet…).

Attention
Si vous ne connaissez pas les notions de sécurité (par mot de passe ou par sécurité utilisateur), ne testez pas la protection « juste pour voir ». Prévoyez des copies de sauvegarde de vos bases avant… pour peu que la sécurisation marche parfaitement et que vous oubliiez votre mot de passe après… On vous aura prévenu ! 😉

Le bout de code VB

Voici un exemple de procédure VB (à recopier dans un module standard VBA) qui se connecte à une base. Vous pouvez aménager selon vos besoins, bien sûr.

Quelques compléments

  • Renseignez la chaîne strCheminBase pour qu’elle pointe vers un fichier existant (l’exemple de code ne fait pas cette vérification, pour la démo).
  • Renseignez également la chaîne strConnexion qui contient la chaîne de connexion à fournir, dont le mot de passe. Cette chaîne peut prendre la forme "MS Access;pwd=votre_mot_de_passe" ou tout simplement ";pwd=votre_mot_de_passe", pour une base MDB.
  • Les 2 arguments à False sont respectivement les options de la connexion, et le fait d’ouvrir la base en mode exclusif ou non. Contrairement à ce que dit la documentation, ces arguments doivent être fournis lorsqu’on fournit une chaîne de connexion. Consultez l’aide de OpenDatabase() si vous souhaitez plus de détails.
  • Vous verrez d’ailleurs, dans l’aide, qu’un objet Workspace peut également être fourni. Si ce n’est pas le cas (comme ici, pour alléger le code), c’est l’espace de travail par défaut qui est utilisé. Devrait suffire !
  • Une fois la base ouverte, vous pouvez lui appliquer ensuite n’importe quel traitement. Dans l’exemple, on affiche la liste des tables de cette base dans la fenêtre Exécution. Pensez à faire apparaître celle-ci dans VBE, pour vos tests, en appuyant sur [CTRL]+G.

Vous aimerez aussi...

1 réponse

Laisser un commentaire

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