Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Existence des paires avant inscription
Grâce aux deux
astuces précédentes, nous avons monté un
formulaire d'inscription tout à fait fonctionnel. Il scrute les renseignements fournis et valide l'
inscription sans faire appel au
code VBA.
C'est ce qu'illustre le résultat abouti proposé par la capture. Mais nous l'avions annoncé, des
sécurités font encore cruellement défaut. A ce stade, rien n'empêche un utilisateur déjà inscrit de s'inscrire à nouveau. De même, rien n'empêche un utilisateur de déclarer une
paire Identifiant / Mot de passe déjà empruntée par un autre
inscrit. Nous devons donc vérifier l'
existence de ces paires avant de
valider l'inscription de l'utilisateur. Et pour cela une fois encore, nous allons contourner le
code VBA grâce aux
macros Access.
Base de données source
Pour finaliser ce
formulaire d'inscription, nous devons commencer par le récupérer au dernier indice.
Comme l'indique le volet de navigation sur la gauche de l'écran, cette
base de données est constituée d'une
table, d'une
requête et d'un
formulaire.
- Dans ce volet, cliquer droit sur le formulaire F_Inscription,
- Dans le menu contextuel, choisir le mode création,
Nous basculons ainsi dans la vue en conception du
formulaire d'inscription.
- Sur ce formulaire, cliquer sur le bouton Valider pour le sélectionner,
- Dès lors, activer l'onglet Evénement de sa feuille de propriétés,
Vous constatez la présence fort logique d'une
macro incorporée associée à l'
événement Au clic du bouton.
- Cliquer sur le petit bouton placé sur la droite de la macro incorporée,
Nous basculons ainsi dans l'
éditeur de macro Access pour le
bouton Valider. Et nous pouvons contempler le travail déjà réalisé par l'enchaînement de
macros Access afin de valider l'inscription et de réinitialiser le
formulaire à l'issue.
Tester l'existence des paires
Pour tester l'
existence des paires, deux nouvelles conditions doivent être posées après la première, soit après l'
instruction conditionnelle. C'est seulement lorsque ces trois critères seront vérifiés que nous pourrons enclencher le
processus d'inscription. La première condition vérifie déjà que les
champs du formulaire sont correctement remplis. Les deux suivantes doivent consécutivement s'assurer que la
paire Nom /Prénom n'existe pas déjà et que la
paire Identifiant / Mot de passe n'est pas déjà empruntée. Pour cela, nous pouvons exploiter la
fonction Access CpteDom. Sur une
table, elle permet de compter la présence d'un critère à formuler en troisième argument. Ce critère n'est autre que la
paire.
- Sélectionner toutes les actions situées entre le Si et le Sinon,
Pour cela, il suffit de cliquer sur le nom de la première
action (Avertissements), puis tout en maintenant la
touche Maj enfoncée, de cliquer sur la dernière
action avant l'
instruction Sinon.
- Dès lors, cliquer droit sur le nom de l'une des actions sélectionnées,
- Dans le menu contextuel, choisir la commande Créer un bloc Si,
Grâce à cette
astuce, nous avons placé une deuxième
instruction conditionnelle qui englobe toutes les actions de la première.
- Cliquer dans la zone Expression conditionnelle de l'instruction Si pour l'activer,
- Taper le nom de la fonction de décompte suivie d'une parenthèse, soit : CpteDom(,
- Entre guillemets, désigner le champ de la civilité, soit : "[U_civilite]",
N'importe quel champ fait l'affaire. Ce qui importe, c'est le nombre d'enregistrements trouvés une fois le critère appliqué sur la
table.
- Taper un point-virgule (;) pour passer dans l'argument du domaine, soit de la table,
- Mentionner la table Utilisateurs entre guillemets, soit :"Utilisateurs",
- Taper un point-virgule (;) pour passer dans l'argument du critère,
- Ouvrir les guillemets pour annoncer l'expression à suivre,
- Désigner le champ du nom, suivi du symbole de concaténation suivi du champ du prénom :
[U_nom] & [U_prenom]
Cette ruse est intéressante. En assemblant la paire à trouver, nous pouvons réaliser le décompte à l'aide d'un seul
critère. Toutes les
paires de cette
table doivent être comparées à la paire issue du
formulaire. Il nous reste donc à terminer l'expression du
critère.
- Taper le symbole égal (=) pour annoncer la condition à suivre,
- De la même façon, associer le contrôle du nom et du prénom, soit : [Le_Nom] & [Prenom],
- Fermer les guillemets de l'expression,
- Fermer la parenthèse de la fonction CpteDom,
- Puis, taper le critère suivant : =0,
En effet, si le dénombrement conduit à une valeur nulle, nous en concluons que la paire n'a pas été trouvée dans la
table. Dans ces conditions, nous autorisons le
processus d'inscription à s'enclencher. Mais avant cela, nous devons aussi tester la présence de la
paire Identifiant / Mot de passe.
- Sélectionner toutes les actions situées à l'intérieur du bloc Si que nous venons de construire,
- Cliquer droit sur l'un des noms d'action,
- Dans le menu contextuel, cliquer sur la commande Créer un bloc Si,
- Dans la zone Expression conditionnelle, taper la syntaxe suivante :
CpteDom("[U_civilite]"; "Utilisateurs"; "[U_id] & [U_mp] = [Id] & [Mp]")=0
Bien sûr, il est important d'expliquer à l'utilisateur pourquoi l'opération est avortée lorsque ces
critères ne sont pas honorés. Pour cela, nous allons lui adresser des indications par le biais de boîtes de dialogue.
- Cliquer sur le Si de la deuxième des trois instructions conditionnelles,
De cette manière, nous activons son bloc.
- En bas de ce bloc Si, cliquer sur le lien Ajouter Sinon,
- Juste en dessous, déployer la liste déroulante des actions,
- Choisir alors l'action ZoneMessage,
- Dans la propriété Message, taper l'indication suivante :
Cet utilisateur existe déjà . Vous ne pouvez pas vous inscrire deux fois.
- Puis, régler la propriété Type sur le style Stop,
Nous devons faire de même dans le cas de la
paire Identifiant / Mot depasse.
- Cliquer sur le Si de la troisième instruction conditionnelle,
- En bas du bloc sélectionné, cliquer sur le lien Ajouter Sinon,
- Avec la liste déroulante du dessous, choisir l'action ZoneMessage,
- Dans la propriété Message, taper l'indication suivante :
Cette paire Identifiant / Mot de passe existe déjà . Vous devez la changer.
- Puis, régler le type sur le style Stop,
- 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),
- L'exécuter par exemple avec la touche F5 du clavier,
Désormais, si vous renseignez tous les champs avec le nom et le prénom d'un utilisateur déjà inscrit (Exemple : Mimi Mathis), l'
inscription est refusée. Il en va de même si vous entrez une
paire Identifiant / Mot de passe déjà utilisée.
Mais lorsqu'aucune des deux
paires n'est trouvée dans la table, l'
inscription est un succès.