Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Changer le mot de passe d'une base de données
Dans le volet précédent, nous avons appris à accéder aux objets d'une
base de données externe,
protégée par un mot de passe. Dans cette suite logique, nous allons voir comment, par le biais d'un formulaire,
changer automatiquement le mot de passe d'une
base de données externe, toujours par le
code VBA.
Bases de données Access à télécharger
Pour démontrer cette technique, nous suggérons d'appuyer les travaux sur
deux bases de données, dont l'une est
protégée par un mot de passe.
Comme vous pouvez le voir, la décompression livre deux fichiers nommés respectivement changer-mot-de-passe-bdd.accdb et facturation-et-stocks.accdb.
- Double cliquer sur le second fichier pour l'ouvrir dans Access,
Vous le constatez, une boîte de dialogue s'interpose. Elle interdit l'accès aux ressources tant que le bon mot de passe n'est pas formulé.
- Dans la zone de saisie, taper le mot de passe : abc123,
- Puis, valider par le bouton Ok,
Cette fois, la base de données s'ouvre effectivement.
- Fermer cette base en cliquant sur la croix de la fenêtre,
- Double cliquer sur le fichier changer-mot-de-passe-bdd.accdb 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,
Vous remarquez que ce
formulaire est tout d'abord doté d'un
bouton matérialisé par l'
icône d'un dossier. Son
code VBA est prêt. Il ouvre une
boîte de dialogue d'Office pour permettre à l'utilisateur de désigner un
fichier de base de données. La
zone de saisie sur sa droite est destinée à réceptionner le
chemin d'accès complet à la
base de données ainsi choisie.
Dans les deux zones de texte du dessous, l'utilisateur doit renseigner respectivement l'
ancien mot de passe de cette
base de données pour pouvoir y accéder en
mode exclusif par le
code VBA et le nouveau pour pouvoir le modifier, toujours par le
code VBA. Elles sont respectivement nommées
ancienMP et
nouveauMP. Naturellement, le
bouton intitulé Changer, doit lancer le
processus VBA permettant de réaliser ce changement, en tenant compte de toutes les informations fournies en amont.
L'objet de base de données
Pour parvenir Ã
modifier le mot de passe d'accès à une
base de données externe, nous devons premièrement prendre possession de cette dernière par le
code VBA. Pour cela, nous avons besoin de déclarer un
objet de base de données.
- 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 Changer,
- Activer alors l'onglet Evénement de sa feuille de propriétés,
- Puis, cliquer sur le petit bouton associé à son événement Au Clic,
Nous basculons ainsi dans l'
éditeur VBA Access entre les bornes de la
procédure événementielle changerMP_Click. Son code se déclenchera au clic sur ce bouton.
Juste en-dessous, vous notez la présence de la procédure attachée au bouton matérialisé par l'icône d'un dossier. C'est elle qui permet à l'utilisateur de désigner une base de données par le biais d'une boîte de dialogue et de mémoriser son chemin d'accès dans la zone de saisie nommée chemin.
- Dans les bornes de la procédure changerMP_Click, ajouter la déclaration suivante :
...
Dim base As Database
...
Vérifier le chemin d'accès
Nous initialiserons bientôt cet objet sur la base de données pointée par l'utilisateur. Mais avant cela, nous devons nous assurer que l'utilisateur a bien choisi un fichier donc que lazone de texte nommée chemin, n'est pas vide.
- A la suite du code de la procédure, créer l'instruction conditionnelle suivante :
...
If chemin.Value <> "" Then
Else
MsgBox "Vous devez désigner une base de données protégée."
End If
...
Si une base de données est bien choisie (chemin.Value <> ""), nous poursuivons le traitement qu'il nous reste à implémenter. Le cas échéant (Else), nous en alertons l'utilisateur (MsgBox) et avortons le traitement.
Chaîne de connexion avec mot de passe
Maintenant et nous l'avons appris à l'occasion du volet précédent, pour accéder à la
base de données protégée, nous devons fournir la
chaîne de connexion à la
fonction VBA Access OpenDatabase pour initialiser l'
objet base que nous avons déclaré.
- Dans la première branche de l'instruction conditionnelle, ajouter la ligne VBA suivante :
...
Set base = OpenDatabase(chemin.Value, True, False, ";PWD=" & ancienMP.Value)
...
Nous initialisons (Set) notre
objet base sur la
base de données en cours. Pour cela, nous passons son
chemin d'accès (chemin.Value) en premier paramètre de la
fonction OpenDatabase. Nous y accédons en
mode exclusif (True) et pas en lecture seule (False), donc en
écriture. En dernier argument enfin, nous lui passons le
mot de passe indiqué par l'utilisateur dans la
zone de texte ancienMP. Sans lui, la connexion échouerait.
Changer le mot de passe
Grâce à l'
initialisation de l'objet base, celui-ci a hérité de
propriétés et méthodes pour
piloter la base de données désignée. L'une d'entre elles est une
méthode qui se nomme
NewPassword. Comme son nom l'indique, elle permet d'attribuer un
nouveau mot de passe à la
base de données.
- A la suite du code de l'instruction conditionnelle, ajouter la ligne VBA suivante :
...
base.NewPassword ancienMP.Value, nouveauMP.Value
...
En premier paramètre de cette méthode, nous passons l'ancien mot de passe à remplacer par le nouveau que nous renseignons en second argument.
Décharger la base de données
Pour finir proprement comme nous en avons l'habitude, il ne nous reste plus qu'Ã
décharger l'objet de base de données pour
libérer la mémoire de l'ordinateur.
- A la suite, dans l'instruction conditionnelle, ajouter les lignes VBA suivantes :
...
MsgBox "Le mot de passe de la base externe a été changé avec succès."
base.Close
Set base = Nothing
...
Comme vous le savez, c'est la réinitialisation (Set) à Nothing qui permet de détruire l'objet désigné.
- Enregistrer les modifications (CTRL + S) puis basculer sur le formulaire (ALT + Tab),
- L'exécuter ensuite par exemple avec la touche F5 du clavier,
- Cliquer sur le bouton à l'icône du dossier,
- Dans la boîte de dialogue, pointer sur le dossier de décompression,
- Double cliquer alors sur la base de données facturation-et-stocks.accdb,
Ainsi, nous sommes de retour sur le formulaire et le chemin d'accès à cette base est effectivement inscrit dans la zone de texte du haut.
- Dans la première zone de texte du dessous, renseigner l'actuel mot de passe : abc123,
- Dans celle de droite, taper le nouveau mot de passe comme par exemple : 999zzz,
- Cliquer enfin sur le bouton Changer,
Comme vous le constatez, le message de succès apparaît aussitôt. Mais nous entendons le vérifier.
- Valider la boîte de dialogue en cliquant sur le bouton Ok,
- Dans le dossier de décompression, double cliquer sur le fichier facturation-et-stocks.accdb,
- A l'invite, taper l'ancien mot de passe : abc123,
Comme vous le remarquez, il ne semble en effet plus en vigueur indiquant que notre code VBA Access a vraisemblablement fonctionné.
Maintenant, si vous tapez le nouveau mot de passe (999zzz) dans cette même zone, vous avez le plaisir de constater que l'accès est autorisé et donc, que le
mot de passe de la base de données externe a été modifié avec succès grâce au
code VBA Access.