Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Formulaire Access d'inscription
Cette nouvelle
astuce Access est la suite logique de la précédente. Elle avait consisté à vérifier les inscriptions de l'utilisateur au fil de la saisie, avec des guides symbolisés par des
astérisques.
Désormais, nous devons nous soucier de finaliser l'
inscription pour que les informations du nouvel utilisateur soient archivées dans la
table source. Et c'est ce qu'illustre la capture ci-dessus.
Base de données source
Avant de démarrer, il convient bien sûr de récupérer les travaux aboutis à l'occasion de la précédente
astuce.
Vous constatez l'affichage d'
astérisques en regard des champs à renseigner. Ils indiquent que toutes ces informations doivent obligatoirement être fournies. Si vous remplissez ces champs, vous notez que les
astérisques disparaissent tour à tour. Cette méthode confirme à l'utilisateur que sa saisie est jugée conforme.
Attention néanmoins, l'identifiant doit essentiellement être composé de chiffres sur au moins 6 caractères. Le mot de passe doit être alphanumérique (Lettres et chiffres) sur 5 caractères, ni plus ni moins. Ce sont des règles que nous avons posées en Amont. Mais à ce stade, bien que le
formulaire soit parfaitement renseigné, si vous cliquez sur le
bouton Valider, rien ne se produit encore, fort naturellement.
Requête Ajout
Pour
valider l'inscription en contournant le
code VBA, l'
astuce consiste à passer par une
requête Ajout. Cette
requête Ajout doit récupérer les informations saisies sur le
formulaire pour les insérer dans la
table Utilisateurs. Pour que cette insertion soit ordonnée, la
requête Ajout doit être exécutée
au clic sur le bouton Valider, par
actions de macro.
- En haut de la fenêtre Access, cliquer sur l'onglet Créer pour activer son ruban,
- Dans la section Requêtes du ruban, cliquer sur le bouton Création de requête,
- Dans la boîte de dialogue qui suit, cliquer sur le bouton Fermer,
De cette manière, nous basculons dans l'éditeur de
requête Access sans ajouter de
table. En effet, la
requête à construire est spécifique. Son but n'est pas de sélectionner des données mais d'en insérer. La
table se définit donc après dans la procédure.
- Dans le ruban Créer, cliquer sur le bouton Ajout,
- Dans la boîte de dialogue qui suit, désigner la table Utilisateurs avec la liste déroulante,
- Puis, cliquer sur le bouton Ok pour valider la transformation de la requête,
A ce titre, vous voyez apparaître la ligne
Ajouter à dans la grille de requête. C'est grâce à elle que nous allons pouvoir spécifier les champs cibles pour l'
insertion de données.
- Sur la ligne Ajouter à , désigner les champs de la table dans l'ordre,
Pour cela, une liste déroulante se propose dans chaque colonne. Maintenant, nous devons préciser ce que nous souhaitons insérer dans ces champs. Et précisément, chaque expression respective doit se construire dans la
zone Champ de cette grille de requête. Cette expression consiste à prélever l'information correspondante sur le
formulaire au moment de l'appel. Et pour établir cette correspondance, nous allons utiliser le
générateur d'expression d'Access.
- Cliquer droit dans la zone Champ de la première colonne,
- Dans le menu contextuel qui apparaît, choisir la commande Créer,
Nous déclenchons en effet l'affichage de la boîte de dialogue du
générateur d'expression.
- Dans la liste de gauche, déployer complètement l'arborescence des formulaires,
- Puis, cliquer sur le formulaire F_Inscription pour le sélectionner,
- Dans la liste du centre, double cliquer sur le contrôle Civ du formulaire,
De cette manière, nous bâtissons l'
expression de correspondance entre le contrôle de la civilité issu du
formulaire et le
champ U_civilite dans lequel cette information doit être insérée.
- Cliquer sur le bouton Ok pour valider la création de cette expression,
De la même façon, les autres
expressions de correspondance doivent être bâties dans la
zone champ pour les champs de destination respectifs.
Pour le
champ U_nom :
Formulaires![F_Inscription]![Le_Nom]
Pour le
champ U_prenom :
Formulaires![F_Inscription]![Prenom]
Pour le
champ U_id :
Formulaires![F_Inscription]![Id]
Pour le
champ U_mp :
Formulaires![F_Inscription]![Mp]
Désormais, nous devons exploiter ce travail. Cette requête n'est pas destinée à être utilisée seule.
- Enregistrer la requête (CTRL + S) sous le nom R_Inscription,
- Puis, fermer cette dernière en cliquant sur la croix de son onglet,
Nous sommes ainsi de retour sur le
formulaire en mode exécution puisque nous ne l'avions pas fermé.
Valider l'inscription
Le plus dur est fait. Il ne nous reste plus qu'à déclencher l'exécution de cette
requête Ajout au clic sur le
bouton Valider.
- A gauche du ruban Accueil, cliquer sur la flèche du bouton Affichage,
- Dans la liste des propositions, choisir le mode Création,
- Sur le formulaire en conception, cliquer sur le bouton Valider pour le sélectionner,
- Dès lors, activer l'onglet Evénement de sa feuille de propriétés,
- Cliquer sur le petit bouton à l'extrémité droite de son événement Au clic,
- Dans la boîte de dialogue qui suit, choisir le générateur de macro et valider par Ok,
Nous basculons ainsi dans l'éditeur de
macro Access. Avant d'enclencher l'exécution de la
requête Ajout, nous devons nous assurer que tous les champs ont correctement été renseignés. En effet, les contrôles placés en amont sont seulement des guides, sauf pour les zones Id et Mp qui sont régis par des
règles de validité. En conséquence, nous devons vérifier des
critères. Et pour cela, nous avons besoin de l'appui d'une
instruction conditionnelle.
- Déployer la liste déroulante au centre de l'éditeur et choisir l'instruction Si,
- Dans la zone Expression conditionnelle, taper la syntaxe suivante :
NbCar([Le_Nom])>3 Et NbCar([Prenom])>3 Et [Id]<>"" Et [Mp]<>"" Et [Civ]<>""
Il s'agit donc d'une analyse multicritère. Tous les contrôles de renseignement sont concernés. Les conditions sont recoupées une à une grâce à l'
opérateur Et. La
fonction Access NbCar renvoie le nombre de caractères contenus dans le champ qui lui est passé en paramètre. Ainsi, nous nous assurons tout d'abord que le nom et le prénom sont renseignés avec au moins quatre caractères. Les
contrôles Id et
Mp sont soumis à des
règles de validité strictes. Si elles ne sont pas respectées, les saisies sont refusées. C'est la raison pour laquelle, nous vérifions simplement qu'ils ne sont pas vides. Le champ de la civilité ne peut prendre que deux valeurs puisqu'imposées par une liste déroulante. C'est pourquoi de la même manière, nous nous assurons simplement qu'il est bien renseigné.
- Dans le ruban Création, cliquer sur le bouton Afficher toutes les actions,
En effet, nous allons devoir avoir recours à une action spécifique qui n'est pas disponible par défaut. Cette action permet de neutraliser les
alertes d'Access. Ces alertes interviennent notamment à l'occasion de l'exécution d'une
requête Ajout. Comme il s'agit de toucher au coeur des données,
Access demande toujours confirmation à l'utilisateur avant d'agir. Mais ici, nous savons ce que nous faisons.
- Avec la liste déroulante sous l'instruction Si, choisir l'action Avertissements,
- Conserver son attribut Avertissements actifs réglé sur Non,
C'est ainsi et placée en amont de toutes les autres actions que les alertes pourront être neutralisées.
- Déployer la liste déroulante du dessous et choisir l'action OuvrirRequête,
- Dans la zone Nom de la requête, choisir la requête R_Inscription,
- Ensuite, régler son attribut Mode de données sur Lecture seule,
Dès lors que la
requête aura fini de s'exécuter, nous devons purger le
formulaire en vidant ses zones de texte pour permettre une éventuelle nouvelle
inscription dans la foulée et ne pas risquer non plus d'insérer des informations en double. Mais avant cela, nous souhaitons avertir l'utilisateur du bon déroulement du processus.
- Avec la liste déroulante du dessous, choisir l'action ZoneMessage,
- Dans la zone Message, inscrire l'indication suivante : L'inscription s'est déroulée avec succès,
- Dans la zone Type, choisir le style Information,
- Avec la liste déroulante du dessous, choisir l'action DéfinirPropriété,
- Dans la zone Nom du contrôle, désigner le contrôle Civ,
- Dans la zone Propriété, choisir l'attribut Valeur,
- Puis, conserver vide la zone Valeur,
De cette manière, après
exécution de la requête, la liste déroulante sera vidée de son précédent choix. Nous devons répliquer exactement le même réglage pour les quatre zones de texte en les désignant par leurs noms.
- Déployer la liste déroulante du dessous,
- Choisir de nouveau l'action DéfinirPropriété,
- Dans la zone Nom du contrôle, taper l'intitulé Le_Nom,
- Dans la zone Propriété, choisir l'attribut Valeur,
- Puis conserver vide la zone Valeur,
- De la même façon régler l'action DéfinirPropriété pour les trois autres zones de texte,
Il s'agit simplement d'adapter les noms des contrôles : Prenom, Id et Mp. Enfin, nous ne devons pas oublier de traiter le cas où les cinq critères de l'
instruction conditionnelle ne sont pas honorés. Dans ce cas, l'inscription est refusée et l'utilisateur doit en être informé.
- En bas à droite de la dernière action DéfinirPropriété, cliquer sur le lien Ajouter Sinon,
- Déployer la liste déroulante de cette nouvelle section,
- Choisir l'action ZoneMessage,
- Dans la zone Message, taper l'indication suivante :
Tous les champs doivent être renseignés correctement.
- Dans la zone Type, choisir le Style Stop,
La
macro est terminée. Il est temps de tester son bon fonctionnement.
- Dans le ruban Création, cliquer sur le bouton Enregistrer puis sur le bouton Fermer,
- De retour sur le formulaire, l'enregistrer à son tour (CTRL + S),
- Puis, l'exécuter avec la touche F5 du clavier par exemple,
- Cliquer directement sur le bouton Valider,
Comme vous le constatez, étant donné que toutes les informations requises ne sont pas renseignées, la sécurité est déclenchée par la
branche Sinon de notre
instruction conditionnelle. Et comme vous pouvez le voir aussi, le
type Stop est matérialisé par une icône rouge.
- Désormais, renseigner toutes les informations demandées, de la civilité au mot de passe,
Souvenez-vous néanmoins, l'identifiant doit être composé au moins de six chiffres et le mot de passe doit être alphanumérique et codé sur cinq caractères.
- A l'issue, cliquer sur le bouton Valider,
Comme vous pouvez le voir, l'
inscription semble s'être parfaitement déroulée, en atteste l'apparition du message de confirmation. A validation de ce message, toutes les zones du
formulaire se réinitialisent, comme nous l'avons dicté avec l'
action de macro DéfinirPropriété. Si vous ouvrez la
table Utilisateurs, vous confirmez la présence du nouvel enregistrement fraichement créé par le biais du
formulaire d'inscription.
Nous n'en avons pas terminé pour autant. Il manque des verrous de sécurité. Rien n'empêche pour l'instant un utilisateur de s'inscrire deux fois. Nous devons donc vérifier la présence de la paire Nom/Prénom. Rien n'empêche non plus un utilisateur de fournir la même paire Identifiant/Mot de passe qu'un autre. Là encore, nous devons vérifier sa présence avant d'accepter l'
inscription. Ces travaux feront l'objet de la prochaine
astuce.