Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Interdire la saisie des chiffres
Sur un
formulaire d'inscription ou d'identification, des normes de saisie peuvent être imposées pour l'identifiant et le mot de passe. Avec cette nouvelle
astuce Access, nous allons apprendre à contrôler la saisie d'un
mot de passe pour qu'il ne soit composé que de
lettres et celle d'un
identifiant pour qu'il ne contienne que des chiffres.
Base de données source
Pour la mise en place de cette nouvelle
astuce, nous suggérons de récupérer une petite
base de données existante.
En consultant le
volet de navigation sur la gauche de l'écran, vous constatez que cette
base de données n'est pour l'instant constituée que d'une seule
table.
- Double cliquer sur cette table Utilisateurs pour l'afficher en mode Feuille de données,
Les utilisateurs d'une application sont détaillés sur cinq champs. Ce sont les deux derniers qui nous intéressent :
U_id et
U_mp. Ils concernent respectivement l'
identifiant et le
mot de passe de connexion.
Interdire la saisie de chiffres
Ici, nous partons du principe que les
mots de passe ne doivent être composés que de
lettres. Les
chiffres ne sont pas autorisés. L'
astuce consiste à construire une
règle de validité exploitant les
expressions régulières. Comme vous le savez, le contrôle d'une
règle de validité agit en aval de la saisie. Les capacités des
expressions régulières en
conception de table ne sont certes pas aussi puissantes qu'en
programmation. Mais une ruse va nous permettre de contourner certains manquements.
- A gauche du ruban Accueil, cliquer sur le bouton Affichage,
Nous basculons ainsi dans la vue en conception de la
table Utilisateurs.
- Cliquer sur le champ U_mp pour le sélectionner,
- En bas de la fenêtre, cliquer dans la zone de son attribut Valide si,
- Taper l'opérateur Comme suivi d'un espace,
Cet opérateur annonce la forme remarquable attendue pour la suite de la saisie.
- Puis, inscrire l'expression suivante sans oublier les guillemets : '[a-zA-Z]*',
L'expression régulière est inscrite entre crochets. Elle indique que seules les lettres de l'alphabet sont autorisées, qu'il s'agisse de minuscules (a-z) ou de majuscules (A-Z). Mais ce contrôle n'est opéré que sur le premier caractère, en atteste la présence de l'étoile qui suit. Cet astérisque stipule que ce qui suit importe peu. Or, nous souhaiterions imposer la saisie d'un mot de passe sur au moins cinq lettres sans chiffre. Il suffit de démultiplier l'expression régulière.
- Adapter la précédente expression comme suit :
Comme '[a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z]*'
Cette fois, les cinq premiers caractères doivent nécessairement être des lettres. Nous pourrions d'ailleurs autoriser d'autres caractères en dehors des chiffres en les ajoutant dans l'énumération :
Comme '[a-zA-Z*!?][a-zA-Z*!?][a-zA-Z*!?][a-zA-Z*!?][a-zA-Z*!?]*'
Dans cette forme, sur les cinq premiers caractères, sont autorisés les
lettres de l'alphabet ainsi que l'astérisque, le point d'exclamation et le point d'interrogation. Mais pour la suite, du fait de la présence de l'étoile, toute saisie est permise, y compris les
chiffres. Sa présence est justifiée par le fait que nous ne souhaitons pas limiter la
saisie d'un mot de passe à cinq caractères. Or, le symbole du plus entre accolades ({+}) ou les chiffres de répétition entre parenthèses (5), usuels dans les
expressions régulières, ne sont pas disponibles en
conception de table. Il suffit simplement de recouper cette première expression avec une seconde qui indique tout ce qui est proscrit.
- A la suite de l'expression taper un espace suivi de l'opérateur ET, suivi d'un espace,
- Puis, inscrire l'opérateur Pas Comme suivi d'un espace,
Il annonce la forme remarquable à suivre qui ne doit pas être trouvée dans la saisie. En ce qui nous concerne, tout chiffre est proscrit.
- Ajouter l'expression suivante entre guillemets : '*[0-9]*',
L'énumération entre crochets représente
tout chiffre, de zéro à neuf. Comme cette expression est encadrée d'astérisques, elle indique que quelle que soit sa position, aucun chiffre ne doit être trouvé. Et bien sûr, si d'autres caractères sont proscrits, il suffit des les ajouter à la suite de l'énumération, avant le crochet fermant.
- Valider cette expression avec la touche Entrée du clavier,
- Enregistrer les modifications par le raccourci clavier CTRL + S,
Une alerte se déclenche fort logiquement car des données ont antérieurement été inscrites dans ce
champ. Et elles sont susceptibles de ne plus correspondre avec les normes imposées par cette
règle de validité.
- Valider la première alerte puis la seconde en cliquant sur le bouton Oui,
- A gauche du ruban création, cliquer sur le bouton Affichage,
Rappelez-vous, une
règle de validité contrôle la saisie en aval. C'est la raison pour laquelle toutes les anciennes saisies de
mot de passe sont conservées, malgré leur non-conformité. Mais désormais, toute nouvelle inscription va être scrutée.
Si vous tapez un
mot de passe constitué de
lettres mais en-dessous de cinq caractères, une alerte se déclenche au moment de la validation. Elle refuse la saisie. Si vous tapez un
mot de passe de plus de
cinq lettres mais hébergeant au moins un
chiffre, la sentence est la même.
Si vous tapez un
mot de passe, uniquement composé de lettres et dépassant les cinq caractères, l'inscription est autorisée. Bien sûr, vous pouvez aussi vous permettre les points d'interrogation et d'exclamation ainsi que le symbole de l'astérisque.
La syntaxe de la règle de validité que nous avons construite est la suivante :
Comme'[a-zA-Z*!?][a-zA-Z*!?][a-zA-Z*!?][a-zA-Z*!?][a-zA-Z*!?]*' Et Pas Comme '*[0-9]*'
Comme vous le savez et à toutes fins utiles, le message de l'alerte peut être personnalisé grâce à l'
attribut Message si erreur, situé juste en-dessous de l'
attribut Valide si, en
conception de table.
Autoriser uniquement la saisie de chiffres
Désormais, nous souhaitons contrôler la
saisie de l'identifiant. Il doit comporter au moins cinq caractères et chacun d'entre eux doit être un
chiffre. Toute lettre de l'alphabet ou tout autre caractère est proscrit. Le principe est le même mais le contrôle est inversé.
- A gauche du ruban Accueil, cliquer sur le bouton Affichage pour revenir en conception,
- Cliquer sur le champ U_id pour le sélectionner,
- Dans la zone Valide Si, taper la syntaxe suivante :
Comme'[0-9][0-9][0-9][0-9][0-9][0-9]*' Et Pas Comme '*[a-zA-Z]*'
Nous contrôlons que les cinq premiers caractères sont nécessairement des
chiffres compris entre 0 et 9, peu importe ce qui suit. C'est ainsi que l'utilisateur peut créer un
identifiant numérique pas forcément limité à cinq chiffres. Et pour empêcher l'insertion de lettres, nous exploitons l'
opérateur Pas Comme pour déclencher l'
expression régulière appropriée.
- Valider cette syntaxe par la touche Entrée du clavier,
- Enregistrer les modifications (CTRL + S),
- Valider les deux alertes qui suivent avec les boutons Oui,
- Cliquer sur le bouton Affichage à gauche du ruban Accueil pour passer en feuille de données,
Désormais, si vous tapez un
identifiant exclusivement numérique sur moins de cinq caractères, l'inscription est refusée à validation. Il en va de même si une lettre de l'alphabet ou tout autre caractère est glissé dans l'énumération.
En revanche, la saisie est acceptée dès lors que l'inscription exclusivement numérique atteint au moins les 5 chiffres. Enfin et comme vous le savez, les
tables sont les outils de construction de la
base de données. Ces réglages sont donc nécessairement répercutés sur tous les objets qui les exploitent. Ainsi, si vous construisez un
formulaire à partir de la
table Utilisateurs, les
saisies des identifiants et mots de passe seront bien contrôlées par les
règles de validité que nous venons de construire.