Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Masquer le mot de passe d'accès
Certains
formulaires Access sont sensibles. Ils sont destinés à modifier les données au coeur de la base. Dans ces conditions, leur accès doit être restreint aux personnes habilitées.
Dans l'exemple illustré par la capture, l'utilisateur consulte les informations sur les commerciaux d'une entreprise par le biais d'un premier
formulaire. Il clique sur un bouton permettant de modifier les informations du commercial en cours de consultation. Avant d'atteindre le
formulaire de modification, un barrage se dresse. Un
formulaire intermédiaire impose d'énoncer le
mot passe requis. Et comme vous pouvez le voir, ce
mot de passe est encodé. Cette nouvelle
astuce Access dévoile comment masquer un mot de passe d'accès entre autres.
Source et présentation
Pour amorcer ces démonstrations, nous suggérons de récupérer une petite
base de données hébergeant déjà ces
formulaires. Ainsi, nous pourrons focaliser notre attention sur les tâches utiles.
En consultant le volet de navigation sur la gauche de l'écran, vous remarquez que cette
base de données est composée de cinq objets. Il s'agit d'une
table, d'une
requête et de trois
formulaires.
- Double cliquer sur le formulaire f_com pour l'exécuter,
Par enregistrements séparés, il relate les résultats des commerciaux de l'entreprise. Il a donc été bâti sur la
table Commerciaux. En consultant l'indication de la barre de navigation en bas de la fenêtre
Access, vous constatez qu'ils sont au nombre de 14.
- Fermer le formulaire en cliquant sur la croix de son onglet,
- Dans le volet de navigation, double cliquer sur le formulaire f_modif,
Il s'agit du
formulaire destiné à modifier les informations du commercial consulté depuis le
formulaire f_com. Il apparaît vide car il n'est pas conçu pour s'ouvrir indépendamment.
Il doit réceptionner les informations issues du
formulaire f_com pour restituer les données du commercial en cours de consultation. Cette technique de communication, nous l'apprendrons dans la prochaine
astuce Access. Dès lors, c'est la
requête r_modif qui doit se charger d'opérer la
mise à jour dans la
table Commerciaux, en fonction des modifications apportées par l'opérateur.
- Dans le volet de navigation, cliquer droit sur la requête r_modif,
- Dans le menu contextuel, choisir Mode création,
Nous basculons ainsi dans la vue en conception de la
requête. Vous remarquez qu'il s'agit d'une
requête mise à jour.
Il faut élargir les deux champs pour visualiser la syntaxe.
Dans le
champ com_nom, un
critère de correspondance permet de réceptionner le nom du commercial en cours de modification depuis le
formulaire f_modif. Selon cette donnée, la
mise à jour est entreprise sur le nouvel objectif fixé grâce à la syntaxe inscrite dans la
zone Mise à jour pour le
champ com_obj.
- Fermer la requête r_modif ainsi que le formulaire f_modif,
- Dans le volet de navigation, double cliquer sur le formulaire f_mp,
A ce stade, il n'est doté que d'un
bouton. Nous devons lui greffer une zone de saisie permettant de masquer le
mot de passe inscrit. Et pour cela, nous avons besoin d'un
contrôle ActiveX. C'est ce
formulaire qui doit se dresser à l'appel du
formulaire f_modif par le
formulaire f_com. Si le
mot de passe n'est pas conforme, l'accès doit être refusé. Et ce contrôle doit s'entreprendre par
action de macro.
Zone de texte pour mot de passe
Nous devons donc commencer par ajouter sur ce formulaire la zone de saisie capable d'encoder les caractères tapés par l'utilisateur.
- Tout à fait à gauche du ruban Accueil, cliquer sur la flèche du bouton Affichage,
- Dans la liste des propositions, choisir le mode création,
Dans la vue en conception du
formulaire, vous notez la présence d'une étiquette (Label) au-dessus du
bouton. Elle se nomme
msg. Nous l'utiliserons pour afficher un message à l'utilisateur en cas d'échec à la saisie du
mot de passe. Dans le cas contraire, nous devons entreprendre l'ouverture du
formulaire f_modif par
action de macro.
- Déployer complètement la liste des contrôles dans le ruban contextuel Création,
- Tout en bas des propositions, cliquer sur l'option Contrôles ActiveX,
- Dans la boîte de dialogue qui suit, sélectionner le contrôle Microsoft Forms 2.0 TextBox,
Il s'agit d'une zone de texte a priori classique. Mais nous allons le voir, elle offre plus de
propriétés.
- Cliquer sur le bouton Ok pour valider le choix,
La
zone de texte ActiveX apparaît sur le
formulaire.
- La déplacer et la dimensionner entre le bouton et l'étiquette (Label).
Vérifier le mot de passe
Pour piloter cette zone de saisie, il est vivement conseillé de lui attribuer un nom précis.
- Activer l'onglet Autres de sa feuille de propriétés,
- Dans la zone Nom, remplacer l'intitulé par le suivant : motPasse et valider par la touche Entrée,
- Sur le formulaire, cliquer sur le bouton pour le sélectionner,
- Activer l'onglet Evénement de sa feuille de propriétés,
- Cliquer alors sur le petit bouton de son événement Au clic,
- Dans la boîte de dialogue qui suit, choisir Générateur de macro et valider par Ok,
- Dans l'éditeur de macro, déployer la liste déroulante,
- Dans la liste des propositions, choisir l'instruction Si,
- Dans la zone Expression conditionnelle, inscrire le critère suivant : [motPasse]="abc123",
Arbitrairement donc, nous cherchons à vérifier que le
mot de passe inscrit par l'utilisateur dans le
contrôle motPasse est bien
abc123. Si la condition est satisfaite, nous devons fermer le
formulaire d'accès pour afficher le
formulaire de modification à ses dépens.
- Déployer la liste déroulante du dessous et choisir l'action FermerFenêtre,
- Dans la zone Type d'objet, choisir Formulaire avec la liste déroulante,
- Dans la zone nom d'objet, taper f_mp pour le désigner,
- Dans la zone Enregistrer, choisir la valeur Non pour éviter les messages de confirmation,
- Déployer la liste déroulante du dessous et choisir cette fois l'action OuvrirFormulaire,
- Dans la zone Nom de formulaire, choisir f_modif avec la liste déroulante,
- Dans la zone Mode fenêtre, choisir Boîte de dialogue,
Ainsi, le nouveau
formulaire s'affichera dans sa propre fenêtre et non encapsulé dans un onglet. Nous pourrons le positionner à notre guise pour plus de confort.
Nous venons d'énoncer les actions à exécuter lorsque le
mot de passe est conforme. Dans le cas contraire, nous devons afficher une indication à l'utilisateur. Pour cela, il suffit d'afficher un message dans l'étiquette nommée
msg.
- En bas à droite de l'instruction Si, cliquer sur le lien Ajouter sinon,
- Déployer la liste déroulante qui se propose juste en-dessous,
- Choisir l'action DéfinirPropriété,
- Dans la zone Nom du contrôle, taper : msg, soit le nom de l'étiquette,
- Dans la zone Propriété, choisir l'attribut Légende,
En effet, le texte porté par une étiquette n'est pas reconnu par la propriété Valeur (Value en anglais) comme pour les zones de texte. Il s'agit d'un intitulé reconnu par la propriété Légende ou Caption en anglais.
- Dans la zone Valeur, saisir l'indication suivante : Mot de passe incorrect !,
Il est temps de tester le fonctionnement de cette macro.
- Dans le ruban Création, cliquer sur le bouton Enregistrer puis sur le bouton Fermer,
- De retour sur le formulaire f_mp, l'enregistrer à son tour (CTRL + S),
- Puis, fermer le formulaire en cliquant sur la croix de son onglet,
- Dans le volet de navigation, double cliquer sur le formulaire f_com pour l'exécuter,
- Avec la barre de navigation en bas de la fenêtre, choisir le troisième ou quatrième commercial,
- Puis, cliquer sur le bouton Modifier,
Le
formulaire f_mp s'affiche comme convenu. C'est une
action de macro prédéfinie qui exécute son ouverture. Ce
formulaire n'est pas centré sur la largeur de la fenêtre. C'est un défaut que nous pallierons ensuite pour des raisons d'ergonomie.
- Dans la zone de saisie, taper le mot de passe abc123,
Comme vous pouvez le voir, celui-ci n'est absolument pas encrypté. Mais nous l'avons dit, un
contrôle ActiveX offre de riches propriétés. Nous y reviendrons donc puisqu'il est aussi question d'influer sur les
propriétés du formulaire lui-même.
- Cliquer sur le bouton Valider pour procéder,
Le
formulaire f_modif s'affiche en effet puisque le
mot de passe est correct. Mais à ce stade, il est vide. Nous l'avons dit, à l'occasion de la prochaine
astuce, nous verrons comment récupérer les informations depuis un
formulaire appelant dans le
formulaire appelé.
Cacher un mot de passe
Désormais, notre souci est de trouver la solution pour encoder le
mot de passe au fil de la saisie. Vous allez le voir, comme il s'agit d'une propriété, nous allons en profiter pour régler le
formulaire afin qu'il se centre automatiquement.
- Dans le volet de navigation, cliquer droit sur le formulaire f_mp,
- Dans le menu contextuel, choisir le mode création,
Lorsque nous basculons dans la vue en conception d'un
formulaire, ce dernier est sélectionné par défaut. Donc la
feuille de propriétés énonce tous ses attributs.
- Activer l'onglet Format de sa feuille de propriétés,
- En haut à droite de la feuille de propriétés, cliquer sur le bouton AZ,
Cette action a pour effet d'organiser tous les attributs dans l'ordre alphabétique croissant.
- Double cliquer alors sur la valeur Non de sa propriété Centrage auto,
Vous basculez ainsi la valeur à Oui pour imposer au
formulaire de se centrer sur la largeur de la fenêtre à chaque activation.
- Cliquer désormais sur la zone de saisie pour la sélectionner,
- Activer l'onglet Autres de sa feuille de propriétés,
- Dans la zone de son attribut PasswordChar, taper le symbole de l'astérisque : *,
Nous indiquons ainsi que chaque caractère tapé doit être encodé par un astérisque (étoile), au moment de la frappe.
- Enregistrer le formulaire puis le fermer en cliquant sur la croix de son onglet,
- Sur le formulaire f_com, cliquer sur le bouton Modifier,
- Dans le formulaire f_mp qui s'affiche, taper un mot de passe erroné, comme : abc111,
Nous constatons plusieurs phénomènes. Tout d'abord, le
formulaire est effectivement centré sur la largeur de la fenêtre, ce qui est plus propre et plus pratique. Le
mot de passe est bien encrypté par le symbole de l'étoile. Il est donc désormais sécurisé. Lorsqu'il n'est pas correct, l'ouverture du
formulaire f_modif n'est pas commandée. C'est l'alerte d'erreur que nous avons paramétrée qui apparaît dans l'étiquette du dessus. L'utilisateur peut donc recommencer. Si vous tapez et validez le bon
mot de passe, le
formulaire f_modif apparaît parfaitement.
Pour des raisons d'ergonomie une fois encore, un réglage s'avèrerait précieux sur la zone de saisie du
mot de passe. Celle-ci n'est pas active par défaut. L'administrateur est donc obligé de cliquer dedans avant de pouvoir saisir. Il suffit de régler sa
propriété Index tabulation sur
0. Avec cette valeur, la zone de saisie est considérée comme le contrôle actif par défaut à l'ouverture du formulaire. Cet attribut se trouve dans l'
onglet Autres de la
feuille de propriétés.
Bien sûr, et malgré cette
astuce pour
masquer le mot de passe administrateur, tous les objets restent accessibles à chaque utilisateur, notamment par le biais du volet de navigation. Mais nous avons déjà appris Ã
verrouiller complètement une application Access.