formateur informatique

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

Accueil  >  Bureautique  >  Access  >  Access VBA  >  Ouvrir une base de données protégée par un mot de passe
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Abonner à Youtube    Vidéos astuces Instagram
Sujets que vous pourriez aussi aimer :


Ouvrir une base de données protégée

Nous avons déjà appris à accéder aux objets d'une base de données externe en VBA Access. Avec cette nouvelle astuce, nous allons apprendre à atteindre ces mêmes objets, y compris quand la BDD est protégée par un mot de passe.

Base de données Access à télécharger
Pour développer cette solution, nous suggérons d'appuyer l'étude sur des travaux précédents ayant notamment démontré comment parcourir les tables d'une base de données externe non protégée. Cette décompression livre deux bases de données respectivement nommées facturation-et-stocks.accdb et ouvrir-base-de-donnees-mot-de-passe.accdb. La première est protégée par un mot de passe. La seconde est celle qui doit y accéder en faisant sauter le verrou.
  • Double cliquer sur le second fichier pour l'ouvrir dans Access,
  • Cliquer sur le bouton Activer le contenu du bandeau de sécurité,
  • Dans le volet de navigation sur la gauche, double cliquer sur le formulaire fParcourir,
  • Sur le formulaire, cliquer sur le bouton Ouvrir,
  • Dans la boîte de dialogue, pointer sur le dossier de décompression,
  • Puis, double cliquer sur le premier des deux fichiers de bases de données,
Accès à la base de données Access impossible car protégée par un mot de passe

Comme vous pouvez le voir, puisque cette seconde base est protégée, malgré le code VBA existant, issu de travaux précédents, l'ouverture échoue.

Le code VBA existant
Un code VBA est déjà présent et il permet d'atteindre les objets d'une base externe. Nous proposons de le consulter.
  • Cliquer sur le bouton Fin de la boîte de dialogue,
  • A gauche du ruban Accueil, cliquer sur la flèche du bouton Affichage,
  • Dans les propositions, choisir le mode Création,
  • Sur le formulaire en conception, cliquer sur le bouton Ouvrir pour le sélectionner,
  • Dès lors, activer l'onglet Evénement de sa feuille de propriétés,
  • Puis, cliquer sur le petit bouton associé à son événement Au clic,
De cette manière, nous basculons dans l'éditeur VBA Access entre les bornes de la procédure événementielle ouvrir_Click. Elle est effectivement déjà implémentée.

Nous proposons à l'utilisateur une boîte de dialogue lui permettant de choisir un fichier, plus précisément une base de données :

...
Set boiteD = Application.FileDialog(msoFileDialogOpen)
boiteD.Filters.Add "Bases Access", "*.mdb;*.accdb", 1
...


Puis, nous prenons possession de cette base de données :

Set base = OpenDatabase(chemin)

Avant de parcourir ses tables :

For Each table In base.TableDefs
If Left(table.Name, 4) <> "MSys" And Left(table.Name, 1) <> "~" Then
listeTables.AddItem table.Name
End If
Next table


C'est le mode d'ouverture (OpenDatabase) que nous devons adapter pour accéder aux objets d'une base de données sécurisée par un mot de passe.

Accéder à une base de données sécurisée
Celle issue du dossier de téléchargement est protégée par le mot de passe abc123. C'est cette chaîne de connexion que nous devons adapter pour fournir au VBA le mot de passe d'accès à la volée.
  • Dans le code VBA, adapter la chaîne de connexion comme suit :
...
Set base = OpenDatabase(chemin, True, False, ";PWD=abc123")
...


En deuxième paramètre, nous passons le booléen True pour une ouverture en mémoire certes, mais en mode exclusif, soit le mode qui accorde toutes les autorisations, ici en l'occurrence au code VBA Access. Nous réglons le troisième paramètre (ReadOnly soit lecture seule) à false, pour accéder à cette base en écriture puisqu'il est question d'y inscrire le mot de passe. Ensuite, nous accédons au paramètre de connexion auquel nous fournissons le mot de passe d'accès (;PWD=abc123).

Il est temps de tester le code VBA. Pour cela, il s'agit tout d'abord d'enregistrer les modifications (CTRL + S), de basculer sur le formulaire (ALT + Tab) et de l'exécuter (F5).
  • Dès lors, cliquer sur le bouton Ouvrir,
  • Ensuite, désigner la seconde base téléchargée (facturation-et-stocks.accdb),
  • Puis, valider en cliquant sur le bouton Ouvrir de la boîte de dialogue,
Cette fois, plus aucun message d'erreur n'est à déplorer. Cela signifie que nous sommes parvenus à atteindre les ressources d'une base de données externe, protégée par un mot de passe.

Accéder aux ressources de la base de données Access externe protégée par un mot de passe en VBA

Pour preuve, grâce au code VBA déjà en place, ce sont bien les noms des tables de cette base externe qui sont restitués dans la zone de texte du formulaire.

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn