Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Conformité au fil de la saisie
Cette nouvelle
astuce Access tient à démontrer comment il est possible de scruter la saisie de l'utilisateur sur un
formulaire.
Sur l'exemple illustré par la capture, nous travaillons sur un
formulaire d'inscription. Tous les renseignements sont obligatoires. Tant qu'un champ reste vide, il est sanctionné par un
astérisque qui se place sur sa droite. Et ce dernier disparaît automatiquement dès lors que la saisie est honorée.
Base de données source
Pour la mise en place de cette
astuce, nous proposons de récupérer une
base de données offrant ce
formulaire.
Comme l'indique le
volet de navigation sur la gauche de l'écran, cette
base de données est constituée d'une
table nommée
Utilisateurs et d'un
formulaire nommé
F_Inscription.
- Dans ce volet, cliquer droit sur le formulaire F_Inscription,
- Dans le menu contextuel, cliquer sur la commande Mode création,
Nous basculons ainsi dans la vue en conception du
formulaire. L'objectif est de faire un petit état des lieux. Nous devons connaître les contrôles en place et leurs noms pour pouvoir les piloter avec les
macros Access.
Le premier champ est matérialisé par une liste déroulante pour choisir la civilité. Tous les autres sont des zones de texte. Tous sont accompagnés d'une petite zone de texte grise placée sur la droite. Ce sont elles qui doivent recevoir les
astérisques destinés à aiguiller l'utilisateur au
fil de la saisie.
Les noms des contrôles sont respectivement Civ, Le_Nom, Prenom, Id et Mp. On peut le constater grâce à la
feuille de propriétés après avoir sélectionné tour à tour ces objets.
Les noms des petites zones de texte associées pour l'
astérisque sont respectivement C_Civ, C_Nom, C_Prenom, C_Id et C_Mp. Pour terminer les présentations, le
bouton de Validation n'est pas fonctionnel à ce stade. Nous finaliserons la construction de ce
formulaire d'inscription à l'occasion de trois
astuces successives, dont celle-ci pour commencer.
Vérifier si le champ est vide
Pour que les
astérisques disparaissent, une vérification doit être entreprise au fil de la saisie dans chaque zone de texte. Heureusement, Access gère parfaitement les
événements sur lesquels il permet notamment de déclencher des
actions de macro.
- Cliquer sur la liste déroulante pour la sélectionner,
- Activer l'onglet Evénement de sa feuille de propriétés,
- Cliquer dans la zone vide de son événement Sur changement,
- Cliquer alors sur le petit bouton situé à l'extrémité droite,
- Dans la boîte de dialogue qui apparaît, choisir Générateur de macro et valider par Ok,
Nous basculons ainsi dans l'
éditeur de macro Access. Pour savoir si nous devons enlever l'affichage de l'astérisque, nous devons vérifier que la civilité a bien été renseignée, en d'autres termes qu'elle n'est pas vide. Donc, nous devons vérifier un
critère.
- Déployer la liste déroulante qui se propose et choisir l'instruction Si,
- Dans la zone Expression conditionnelle, bâtir l'expression suivante : [Civ]<>"",
Le
contrôle Civ est nécessairement mentionné entre crochets. Nous cherchons simplement à vérifier qu'il n'est pas vide, donc qu'il est bien renseigné.
- Déployer la liste déroulante du dessous et choisir l'action DéfinirPropriété,
- Dans la zone Nom du contrôle, saisir le nom C_Civ,
Il s'agit bien de la zone de texte hébergeant l'
astérisque pour la
liste déroulante.
- Dans la zone Propriété, choisir l'attribut Valeur,
- Puis, conserver vide la zone Valeur du dessous,
Ainsi, lorsque la civilité est renseignée, nous supprimons l'astérisque qui l'accompagne pour indiquer que tout est conforme.
- Dans le ruban Création, cliquer sur le bouton Enregistrer puis sur le bouton Fermer,
- De retour sur le formulaire, l'enregistrer à son tour avec le raccourci CTRL + S par exemple,
Nous devons engager des vérifications assez similaires sur les quatre zones de texte. Mais elles doivent être plus abouties. En effet, rien n'empêche de vider la zone de texte après l'avoir renseignée. Dans ces conditions, l'astérisque doit réapparaître.
- Cliquer sur la première zone de texte nommée Le_Nom pour la sélectionner,
- Dans l'onglet Evénement de sa feuille de propriétés, cliquer sur la ligne Après MAJ,
Comme son nom l'indique, cet événement se déclenche une fois la saisie validée.
- Cliquer sur le petit bouton placé à l'extrémité droite,
- Dans la boîte de dialogue, choisir Générateur de macro et valider par Ok,
- Dans l'éditeur de macro, choisir l'instruction conditionnelle Si avec la liste déroulante,
- Dans la zone Expression conditionnelle, taper la syntaxe suivante : NbCar([Le_Nom])>3,
Arbitrairement, nous souhaitons que l'inscription du nom soit réalisée sur au moins quatre caractères.
- Déployer la liste déroulante du dessous et choisir l'action DéfinirPropriété,
- Dans la zone Nom du contrôle, désigner la zone de texte C_Nom,
- Dans la zone Propriété, choisir l'attribut Valeur,
- Come précédemment, conserver vide la zone Valeur,
- En bas à droite de l'instruction conditionnelle, cliquer sur le lien Ajouter Sinon,
- Déployer alors la liste déroulante du dessous,
- Choisir de nouveau l'action DéfinirPropriété,
- Dans la zone Nom du contrôle, désigner de nouveau la zone de texte C_Nom,
- Dans la zone Propriété, choisir l'attribut Valeur,
- Cette fois, dans la zone Valeur, taper le symbole de l'astérisque,
De cette manière, si la zone de texte est vidée, à validation, le symbole de l'astérisque réapparaît pour alerter sur la non-conformité détectée. Avant de partir de cet éditeur, nous allons en profiter pour découvrir une nouvelle
astuce. Des actions de macro peuvent être copiées. Et c'est tant mieux dans la mesure où les trois zones de texte restantes doivent être régies de la même façon.
- Cliquer sur un emplacement vide en dehors de toute action de macro,
- Réaliser le raccourci clavier CTRL + A pour tout sélectionner,
- Cliquer droit par exemple à droite de la première action DéfinirPropriété,
- Dans le menu contextuel, choisir la commande Copier,
Désormais, nous pouvons valider ces
actions de macro.
- Dans le ruban Création, cliquer sur le bouton Enregistrer puis sur le bouton Fermer,
- De retour sur le formulaire, l'enregistrer à son tour avec le raccourci CTRL + S par exemple,
- Sélectionner la deuxième zone de texte nommée Prenom,
- Dans sa feuille de propriétés, cliquer sur le petit bouton de son événement Après MAJ,
- Dans la boîte de dialogue qui suit, choisir le générateur de macro et valider par Ok,
- Cliquer sur un emplacement vide de l'éditeur de macro,
- Puis, réaliser le raccourci clavier CTRL + V,
Nous importons ainsi les
actions de macro précédentes. Nous n'avons plus qu'à adapter le nom du contrôle ciblé, à trois reprises en l'occurrence.
- Adapter l'instruction conditionnelle comme suit : NbCar([Prenom])>3,
- Dans les deux actions DéfinirPropriété, remplacer C_nom par C_Prenom,
- Dans le ruban Création, cliquer sur le bouton Enregistrer puis sur le bouton Fermer,
- De retour sur le formulaire, l'enregistrer à son tour,
Désormais, il convient de répliquer ces
actions de macro sur les deux dernières zones de texte, là encore en les adaptant. Dans l'expression conditionnelle, le
contrôle Le_Nom doit être remplacé par
Id, pour le champ de l'identifiant et par
Mp pour le champ du mot de passe. Dans les deux actions
DéfinirPropriété, le
contrôle C_Nom doit être remplacé par
C_Id pour le contrôle de l'identifiant et par
C_Mp pour le contrôle du mot de passe.
Maintenant, si vous exécutez le
formulaire et que vous renseignez les champs, vous constatez la disparition des astérisques en regard. Mais si vous videz une zone de texte, cet astérisque réapparaît aussitôt.
De plus, vous constatez la présence de
règles de validité en vigueur sur les champs de l'identifiant et du mot de passe. L'identifiant ne doit être fait que de chiffres sur au moins 6 caractères. Le mot de passe doit être alphanumérique et codé nécessairement sur 5 caractères. Ces
règles permettent de renforcer le contrôle et la sécurité d'une
application Access.