Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Masques de saisie, exercice Access
Dans ce sixième
exercice Access, nous poursuivons la conception méticuleuse de notre
base de données par les
tables. Dans les précédentes mises en pratique, nous avons soigneusement
typé les champs des tables. Nous les avons aussi dimensionnés et formatés. Désormais, il s'agit de créer des
masques de saisie sur les
champs qui le permettent. Les
masques de saisie sont des guides qui contrôlent chaque caractère tapé. Ils permettent d'uniformiser et de sécuriser les informations attendues.
Base de données source
Il est important de capitaliser les efforts avec les résultats engrangés jusqu'alors. Nous devons donc commencer par réceptionner la
base de données, fruit de nos travaux précédents.
Le
volet des objets Access, sur la gauche de l'écran, énumère les six
tables qui composent la
base de données à ce stade. Souvenez-vous, au fil des exercices, nous avons l'intention de créer une
application complète de facturation avec gestion des stocks. Et il ne sera jamais question de
code VBA.
- Double cliquer sur la table Clients pour l'afficher en mode feuille de données,
L'information attendue dans le
champ Client_civilite est déjà uniformisée et sécurisée. C'est une liste déroulante, que nous avons construite dans l'exercice précédent, qui impose les choix. Un
format contraint l'affichage des noms et villes en majuscules. Mais pour l'instant, aucune règle ne régit ni le
champ Client_prenom, ni le
champ Client_dep.
Guider et contrôler la saisie utilisateur
Nous l'avions évoqué, pour le prénom, nous souhaitons imposer la première lettre en majuscule et les suivantes en minuscules. Il s'agit donc de construire un
masque guidant la
saisie sur l'ensemble des caractères de ce champ. Le
champ Client_dep, malgré son nom, attend un code postal. Un code postal est nécessairement composé de 5 chiffres. Nous devons donc bâtir un
masque imposant la saisie d'un chiffre sur chacun des 5 caractères.
- Dans le ruban Accueil, cliquer sur la flèche du bouton Affichage,
- Dans la liste, choisir Mode création,
Nous basculons ainsi en mode conception de table.
- Sélectionner le champ Client_dep,
- Dans sa propriété Masque de saisie en bas de la fenêtre, saisir l'expression : 00000,
- Puis, valider avec la touche Entrée par exemple,
Dans les
masques de saisie, le symbole zéro (0) impose la saisie d'un chiffre (0 à 9). Comme l'indique la
propriété Taille du champ, nous avions déjà limité sa taille à 5 caractères. Mais jusqu'alors, rien n'empêchait de taper une lettre à la place d'un chiffre. De plus, l'utilisateur pouvait très bien abandonner la saisie avant les 5 caractères. Désormais, grâce à ce
masque de saisie, il doit taper l'information sur 5 caractères et chacun doit être un chiffre.
- Sélectionner le champ Client_prenom,
La saisie est limitée Ã
30 caractères comme l'indique sa
propriété Taille du champ. Un
masque de saisie doit donc être codé sur ces 30 caractères potentiels. Il doit contrôler chaque lettre tapée. En effet, ce sont bien des lettres qui doivent être inscrites. Les chiffres ne sont pas autorisés. Les espaces en revanche doivent être permis, pour les prénoms composés par exemple. De plus, la première lettre doit être transformée en majuscule et les suivantes en minuscules.
- Dans sa propriété Masque de saisie, saisir l'expression suivante :
>L<?????????????????????????????
- Puis, valider avec la touche Entrée,
Le symbole du
L majuscule impose la saisie d'une lettre de l'alphabet. Comme il est préfixé du symbole supérieur (>), cette lettre sera automatiquement convertie en majuscule. Comme il est suivi du symbole inférieur (<), l'inscription se poursuit en minuscules. Le symbole du
point d'interrogation autorise une lettre ou un espace. Mais il permet aussi de ne rien saisir à cet emplacement. Un prénom n'est en effet pas nécessairement composé de 30 lettres. Cette expression est donc constituée de 29 points d'interrogation puisque la taille du champ est limitée à 30 caractères.
- Enregistrer les modifications (CTRL + S),
- Puis, cliquer sur le bouton Affichage du ruban contextuel Création,
Nous revenons ainsi en mode feuille de données.
Si vous tapez un prénom dans le
champ Client_prenom, vous constatez en effet la transformation de la première lettre en majuscule. Si ce prénom est composé, l'espace est autorisé. De plus, le guide à la saisie autorise bien la validation bien que les 30 caractères n'aient pas été renseignés. En revanche, si vous tentez d'insérer un chiffre, vous remarquez que sa saisie n'est pas permise.
Concernant le code postal, si vous tentez de taper une lettre, elle n'apparaît pas. Et si vous essayez de valider un code postal composé de moins de 5 chiffres, une alerte se déclenche instantanément. Le message est sans appel. Selon la règle imposée par le
masque de saisie, cette donnée n'est pas acceptée tant qu'elle n'est pas corrigée.
Fort de ces acquis, nous pourrions très bien décider de contrôler et sécuriser la saisie des noms et des villes. Il s'agit d'autoriser une lettre, un espace ou du vide (L ou ?) sur la longueur respective des champs. Dans les deux cas, le masque de saisie est identique :
L??????????????????????????????????????????????????
- Cliquer sur la croix de l'onglet pour fermer la table Clients,
- Dans le volet des objets Access, cliquer droit sur la table Commandes,
- Dans le menu contextuel, choisir Mode création,
- Dans la vue en conception, sélectionner le champ Com_date,
Il s'agit en effet du seul
champ de cette
table qu'il est nécessaire de contrôler. Les deux premiers représentent respectivement la
clé primaire et la
clé externe. Elles se gèrent automatiquement. Le
type de données Monétaire du
champ Com_montant, impose la saisie d'une information nécessairement numérique. Et comme la longueur d'un montant peut varier, il n'est pas nécessaire de le contrôler. Pour la
date en revanche, nous souhaitons homogénéiser l'information avec une présentation bien précise : jj/mm/aaaaa. Nous souhaitons deux chiffres pour le jour, deux chiffres pour le mois et quatre chiffres pour l'année. Chaque groupe de chiffres doit être séparé d'un autre par le symbole du slash (/).
- Dans sa propriété masque de saisie, saisir l'expression suivante : 00/00/0000,
- Puis, valider avec la touche Entrée du clavier,
Nous l'avons appris précédemment, le
symbole 0 dans un
masque de saisie, impose d'inscrire un chiffre en lieu et place. Le slash (/) n'est pas interprété par les
masques de saisie. En conséquence, il est restitué tel quel, après les deux chiffres pour le jour et après les deux chiffres pour le mois.
- Enregistrer les modifications et basculer en mode feuille de données,
- Puis, débuter la saisie dans le champ Com_date,
Dès l'activation du champ, vous voyez apparaître le guide à la saisie, avec les deux slashs et les zones délimitées pour les chiffres. Bien sûr, si vous tapez une lettre de l'alphabet, rien ne se produit. Si vous tentez de valider une date incomplète,
Access vous barre le chemin. La validation n'est pas autorisée puisque la date n'est pas en conformité avec la
règle imposée par le
masque de saisie.
- Cliquer sur la croix de l'onglet pour fermer la table Commandes,
- Dans le volet des objets Access, cliquer droit sur la table Communes,
- Dans le menu contextuel, choisir Mode création,
- Dans la vue en conception, sélectionner le champ Commune_dep,
- Dans sa propriété Masque de saisie, taper l'expression : 00000,
Comme pour la
table Clients, c'est bien un code postal qui est attendu. D'ailleurs, sa
propriété Taille du champ limitée à 5 caractères en atteste. Nous imposons donc la saisie de chiffres sur 5 caractères.
Pour le
champ Commune_nom, le même
masque de saisie que celui du nom et de la ville de la table Clients peut être répliqué. Seules des lettres sont en effet attendues. De plus, la taille du champ est encore une fois limitée à 50 caractères.
- Fermer la table Communes et afficher la table Produits en mode création,
Nous ignorons en effet la
table Detail_commandes. Les deux premiers champs y représentent respectivement la clé primaire et la clé externe. La remise est contrôlée par le
type de données monétaire. Il en va de même pour la quantité qui impose la saisie d'informations numériques entières. Il reste le
champ Det_ref. Mais sur ce dernier, aucune règle de saisie ne peut vraiment être appliquée. Les lettres, les chiffres et même les tirets sont autorisés. De plus, la longueur est variable.
Le
champ produit_ref est la clé primaire à lier avec le
champ Det_ref de la table Detail_commandes. Pour les mêmes raisons, aucune règle pertinente ne le concerne. Et hormis le
champ Produit_nom, tous les autres sont typés en numérique. Comme ils proposent des longueurs non définies à l'avance, il n'est pas nécessaire de s'y attarder.
Le nom est en réalité une désignation. Et cette désignation peut proposer des chiffres indiquant la taille du modèle. Nous devons donc bâtir un masque de saisie acceptant les lettres, espaces et chiffres.
Le
symbole A impose la saisie d'une lettre ou d'un chiffre. Le même symbole mais en minuscule (a) autorise la saisie d'une lettre ou d'un chiffre. Les espaces sont donc acceptés. Les
masques de saisie que nous avons à construire pour cette base de données, sont donc relativement simples. Mais nous allons en profiter pour faire une petite découverte.
Access propose un assistant pour dicter des règles de saisie sur des champs plus complexes. Vous en conviendrez, guider et contrôler la saisie d'une adresse mail ou d'un numéro de sécurité sociale s'avère plus périlleux.
- Dans la vue en conception, sélectionner le champ produit_nom,
- Puis, cliquer dans la zone de sa propriété Masque de saisie,
- A l'extrémité droite, cliquer sur le petit bouton qui se propose,
L'
assistant masque de saisie se déclenche. Et des règles sont proposées par défaut pour contrôler les numéros de téléphone ou de sécurité sociale par exemple.
- Plus bas dans la liste, sélectionner le masque de saisie Code Postal (France),
Quelques lignes plus bas, comme vous le remarquez, un
masque de saisie est proposé pour les
mots de passe. En revanche, aucune règle n'est proposée pour contrôler la conformité des adresses mail. Nous y reviendrons en temps voulu.
- Cliquer sur le bouton Suivant,
L'expression proposée par l'assistant est strictement identique à celle que nous avons bâtie :
00000.
- Cliquer sur le bouton Annuler et fermer la table Produits,
Etant donnée la taille du champ, nous préférons en effet contrôler la conformité de la saisie des désignations d'une autre manière. Rendez-vous donc dans les prochains exercices.