formateur informatique

Tester l'existence avant inscription sur formulaire Access

Accueil  >  Bureautique  >  Access  >  Access Astuces  >  Tester l'existence avant inscription sur formulaire Access
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Inscription Newsletter
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.

Valider inscription sur formulaire Access sans 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,
Regrouper des actions de macro Access existantes dans 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,


Boîte de dialogue de macro Access pour interdire l-inscription

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.

Inscription refusée dans la table Access car la paire Identifiant-Mot de passe existe déjà

Mais lorsqu'aucune des deux paires n'est trouvée dans la table, l'inscription est un succès.

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn