Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Contrôler la saisie d'un mail
Veiller à l'intégrité et à la conformité des informations saisies dans les
tables d'une base de données est l'un des enjeux les plus importants durant la phase de construction de l'application. Nous avons déjà appris à guider et contrôler les inscriptions de l'utilisateur grâce aux
masques de saisie Access. Ces techniques, nous les avions déployées pour vérifier un code postal, un numéro de téléphone ou encore une date. Mais tous trois proposent des constructions tout à fait remarquables qu'il est simple d'examiner. Concernant le cas d'une
adresse mail, la problématique est toute autre. Hormis quelques caractères imposés (@ et .), il n'y a pas de règle stricte. Nous apportons ici l'
astuce pour valider ou réfuter l'inscription d'une adresse électronique dans un champ de table.
Source et procédure
Nous proposons d'appuyer les démonstrations sur une petite
base de données offrant quelques informations à manipuler.
- Télécharger le fichier valider-mail.rar en cliquant sur ce lien,
- Le décompresser dans le dossier de votre choix,
- Double cliquer sur le fichier résultant pour l'ouvrir dans Access,
- Puis, cliquer sur le bouton Activer le contenu du bandeau de sécurité,
- Dans le volet de navigation sur la gauche, double cliquer sur la table Commerciaux,
Nous affichons ainsi son contenu en mode
Feuille de données. Elle recense des vendeurs indépendants. Et pour chacun d'entre eux, vous constatez que l'information sur le
mail est attendue. Ils ne sont pas tous renseignés pour que nous puissions réaliser des essais.
- Tout à fait à gauche du ruban Accueil, cliquer sur le bouton Affichage,
Nous basculons ainsi en mode création de la table.
- Cliquer sur la ligne du champ c_mail pour le sélectionner,
En consultant sa feuille de propriétés en bas de l'écran, vous notez que son attribut
Masque de saisie n'est pas configuré. A ce stade donc, toute inscription est autorisée puisque non contrôlée. Très vite, nous pouvons donc nous retrouver avec des renseignements farfelus et erronés.
En consultant l'aide en ligne, nous savons que dans un
masque de saisie :
- Le caractère C représente n'importe quel caractère et son inscription est facultative,
- Le caractère L représente une lettre et son inscription est obligatoire.
En connaissance de cause, et en prévoyant large, nous pourrions tenter une certaine expression.
- Dans la zone Masque de saisie du champ, entrer l'expression suivante :
CCCCCCCCCCCCCCCCCCC\@LLLCCCCCCCCC\.LLC
Ainsi, nous prévoyons a priori suffisamment de caractères facultatifs pour le début de l'adresse. Après l'arobase, nous imposons la saisie d'au moins trois lettres et prévoyons des caractères supplémentaires selon le domaine. Enfin après le point, nous imposons deux lettres et en prévoyons une troisième pour les domaines du type (fr, com, be etc...).
- Enregistrer les modifications puis cliquer sur le bouton Affichage du ruban,
Si vous tapez les premiers caractères pour le mail du vendeur 14 (Lile Maurice), le moins que l'on puisse dire est que le résultat n'est pas à la hauteur de nos attentes.
Certes les premiers caractères sont facultatifs mais l'arobase à rejoindre est repoussée à la fin du décompte. Bref, un utilisateur aguerri sur les
masques de saisie ne s'y serait pas trompé mais le doute était permis. Il convient donc d'abandonner l'inscription de l'
adresse électronique avec la touche Echap du clavier.
Contrôler la validité d'un mail
En général, le
masque de saisie s'applique à une entrée de donnée qui est bien structurée. Un numéro de téléphone, une date, une identification font l'affaire parce que l'on connaît le nombre de caractères à utiliser. Mais dans le cas où le nombre de ces caractères n'est pas connu à l'avance, l'
astuce consiste à réaliser un contrôle en aval, soit à validation de la saisie, grâce à une
règle de validité.
- Dans le ruban Accueil, cliquer de nouveau sur le bouton Affichage pour revenir en création,
- Sélectionner le champ c_mail,
- Puis, supprimer l'expression tapée dans sa propriété Masque de saisie,
- En dessous, dans sa propriété Valide Si, taper l'expression suivante :
Comme "*?@?*.?*" Et Pas Comme "*[ ,;]*"
Cette technique s'apparente à celles exploitant les
expressions régulières. Grâce à l'
opérateur Comme et au
caractère générique de l'astérisque, nous cherchons à déceler la présence de l'arobase puis du point dans la chaîne, quels que soient les caractères placés avant et après. Grâce au
caractère générique du point d'interrogation, nous nous assurons tout de même de la présence réelle d'un caractère avant et après ces symboles. De la sorte, nous n'autorisons pas les adresses commençant par le symbole de l'arobase par exemple.
Dans le même temps et grâce à l'
opérateur ET, nous nous assurons que l'espace, le point-virgule et la virgule ne figurent pas dans la chaîne, là aussi, quels que soient les caractères placés avant et après (*). Dans la syntaxe, l'énumération de ces caractères interdits doit se faire entre crochets.
- Enregistrer les modifications (CTRL + S),
- Puis valider la première et la seconde alerte avec le bouton Oui,
- A gauche du ruban, cliquer sur le bouton Affichage pour revenir sur la feuille de données,
- Sur le vendeur d'identifiant 14, réaliser quelques essais,
Si vous tentez de valider une adresse contenant seulement le point ou l'arobase ou débutant directement par l'arobase, une alerte se déclenche. La saisie est jugée non conforme grâce à notre
règle. Elle est donc refusée. D'ailleurs le message n'est pas des plus explicites. Nous corrigerons ce défaut. En revanche, si le mail comporte bien les symboles obligatoires sans les caractères interdits, le
mail est validé. A ce stade par contre, rien n'interdit à l'utilisateur d'inscrire des accents. Or nous le savons, les caractères latins sont proscrits dans les adresses.
- Abandonner l'inscription avec la touche Echap du clavier,
- Puis, dans le ruban, cliquer sur le bouton Affichage pour revenir en mode création,
Comme nous l'avons appris au travers de l'expression construite, il est possible d'énumérer les caractères proscrits, dont les accents forcément.
- Dans la zone Valide Si, il paraît donc judicieux de faire évoluer l'expression de cette manière :
Comme "*?@?*.?*" Et Pas Comme "*[ ,;éèêà âùîô]*"
Et dans le même temps, il apparaît opportun d'expliciter le message d'erreur.
- Dans la zone Message si erreur, inscrire l'indication suivante :
L'arobase et le point sont obligatoires. L'espace, le point-virgule, la virgule et les accents sont interdits
- Enregistrer les modifications (CTRL + S) et valider les alertes,
- Puis, cliquer sur le bouton Affichage pour revenir sur la feuille de données,
- Sur le vendeur 14, réaliser des essais de mails conformes et non conformes,
Nous pourrions même pousser le vice en restreignant les saisies autorisées à certains domaines seulement. Pour cela, il suffirait de les énumérer dans une instruction non exclusive, comme suit :
(Comme "*?@?*.com" OU Comme "*?@?*.fr" OU Comme "*?@?*.be") Et Pas Comme "*[ ,;éèêà âùîô]*"
Quoiqu'il en soit, nous avons bien démontré l'astuce permettant de
contrôler la saisie des mails dans Access.