formateur informatique

Générer des identifiants de connexion uniques

Accueil  >  Bureautique  >  Access  >  Access Astuces  >  Générer des identifiants de connexion uniques
Livres à télécharger


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

Abonnez-vous gratuitement à la chaîne Youtube Rossetti Stéphane .
Sujets et formations similaires :


Générer des identifiants automatiques

Avec l'astuce précédente, nous avons appris à créer des chaînes d'identifiants auto-incrémentés. Avec cette nouvelle astuce, nous souhaitons aller plus loin. Il est question de générer automatiquement des identifiants de connexion en fonction de fragments d'informations prélevées directement dans les champs.

Générer automatiquement des identifiants de connexion avec une requête Access

Dans l'exemple illustré par la capture, chaque personne reçoit un code qui lui est propre. Il est inscrit dans le champ Id à l'extrémité de la table. Ce code est construit sur son identifiant numérique alloué automatiquement et sur les trois premières lettres de son nom ainsi que de son prénom.



Source et procédure
Pour la mise en place de cette astuce, nous suggérons de récupérer une petite source de données.
  • Télécharger le fichier identifiants-textes-perso.rar en cliquant sur ce lien,
  • Le décompresser dans le dossier de votre choix,
  • Puis, cliquer sur le fichier résultant pour l'ouvrir dans Access,
  • Cliquer alors 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 l'affichons ainsi en mode Feuille de données.

Table Access des commerciaux pour construire les codes de connexion uniques et personnalisés

Nous souhaitons créer des codes homogènes constitués de 9 caractères. Nous voulons prélever les trois premières lettres du nom et les trois premières du prénom. En préfixe de cet assemblage, nous souhaitons associer un nombre composé de trois chiffres et basé sur l'identifiant unique. Cet identifiant est inscrit dans le premier champ nommé c_num. Malgré les apparences, il est bien numérique. Pour le constater, il suffit de cliquer sur l'un d'entre eux. Seul le numéro persiste. L'affichage est leurré par un format que nous avons construit lors de l'astuce précédente. Mais ce numéro peut être composé d'un seul chiffre pour les unités, de deux au-dessus de la dizaine et de trois au-dessus de la centaine. Nous allons donc devoir l'étudier pour le compléter si besoin est.

Requête avec un champ calculé
Pour créer une information dynamique à partir des données d'une table, nous avons besoin de construire un champ calculé dans une requête Access. Une requête n'est ni plus ni moins qu'une table spécifique. Nous pourrons donc l'exploiter pour construire d'autres objets comme des formulaires et des états. C'est ainsi que nous pourrons porter l'information sur l'identifiant de connexion généré.
  • Fermer la table Commerciaux en cliquant sur la croix de son onglet,
  • 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, sélectionner la table Commerciaux,
  • Puis, cliquer sur le bouton Ajouter et sur le bouton Fermer,
Ajouter table dans éditeur de requête Access

Nous l'ajoutons ainsi en mode schématisé dans l'éditeur de requêtes. Ce sont en effet de ses informations dont nous devons nourrir les identifiants uniques à construire.
  • Dans la vue schématisée, double cliquer sur le symbole de l'étoile,
Ajouter tous les champs de la table Access dans la requête en une seule fois par double clic sur le symbole de l-etoile



Cet astérisque désigne tous les champs de la table. Dans le cadre d'une extraction future, nous les intégrons tous dans la vue. Et d'ailleurs, le champ les représentant (Commerciaux.*) figure désormais en première colonne de la grille de requête.

Dans la colonne suivante, nous devons créer un champ calculé. Il doit être déclaré par un nom suivi du symbole deux points (:). Après ce symbole, nous devons construire l'expression permettant de prélever les fragments issus des trois champs, tel que nous l'avons expliqué. Pour prélever un bout de chaîne à partir de son premier caractère, nous devons exploiter la fonction Access Gauche. Elle est aussi connue sous le nom Left en VBA.
  • Agrandir tout d'abord la colonne suivante pour faire de la place à l'écriture,
  • Taper l'intitulé c_id suivi du symbole deux points, soit : c_id:,
  • Inscrire la fonction de prélèvement suivie d'une parenthèse, soit : Gauche(,
  • Désigner le champ du nom entre crochets, soit : [c_nom],
En effet, un nom de champ ou de contrôle s'exprime toujours entre crochets dans une expression Access.
  • Taper un point-virgule (;) pour passer dans l'argument de la longueur à prélever,
  • Inscrire le chiffre 3 pour n'extraire que les trois premiers caractères,
  • Puis, fermer la parenthèse de la fonction Gauche,
Nous pouvons déjà effectuer une petite vérification à ce stade.
  • Valider l'expression par la touche Entrée du clavier,
  • Enregistrer la requête (CTRL + S) sous le nom r_id,
  • Puis, tout à fait à gauche du ruban Créer, cliquer sur le bouton Exécuter,
Nous affichons ainsi les résultats de l'extraction de la requête en mode Feuille de données.

Extraire les premières lettres pour tous les enregistrements grâce à un champ calculé avec la fonction Gauche dans une requête Access

Nous obtenons bien les trois premières lettres de chaque nom, y compris pour le cinquième enregistrement malgré les apparences. Il s'agit des deux lettres D et E suivies d'un espace. Nous devons maintenant reproduire la même technique pour associer à ce début de chaîne les trois premières lettres du prénom. Il est donc question de concaténer les résultats fournis par les deux fonctions Gauche. Et comme vous le savez, une concaténation s'opère grâce au symbole du Et commercial : &.
  • Tout à fait à gauche du ruban, cliquer sur le bouton Affichage,
Nous revenons ainsi en mode conception de la requête.
  • Compléter l'expression précédente comme suit :
c_id:Gauche([c_nom];3) & Gauche([c_prenom];3)
  • Enregistrer les modifications puis exécuter la requête,
Assembler les premières lettres des champs dans une requête Access pour créer des identifiants personnalisés



Comme vous pouvez le voir, notre code d'identification progresse. Il est bien composé des trois premières lettres de chaque nom puis des trois premières lettres de chaque prénom. Maintenant, il s'agit de placer trois chiffres en préfixe de cette expression.
  • Dans le ruban cliquer sur le bouton Affichage pour revenir en conception de la requête,
Ce code numérique doit être bâti sur l'identifiant du champ c_num. S'il n'est composé que d'un chiffre, nous devons lui associer deux fois le chiffre zéro. S'il n'est composé que deux chiffres, nous devons lui ajouter un seul chiffre zéro. Comme des contextes sont à analyser, nous devons exploiter une instruction conditionnelle comme avec Excel. Mais dans Access, il ne s'agit pas de la fonction Si. Elle se nomme VraiFaux ou encore Iif en version anglaise. Par contre, sa syntaxe et sa construction sont strictement identiques : =VraiFaux(Critère; Alors; Sinon). Et comme trois cas sont à envisager, nous devons imbriquer deux fonctions VraiFaux. Mais procédons par étapes :
  • Dans l'expression, cliquer après le symbole deux points pour y placer le point d'insertion,
  • Inscrire la fonction conditionnelle suivie d'une parenthèse, soit : VraiFaux(,
  • Désigner le champ de référence par son nom entre crochets, soit : [c_num],
  • Puis, taper l'inégalité suivante : <10,
Lorsque ce critère est vérifié, il indique que le numéro du vendeur est une unité. Nous devons donc lui préfixer deux fois le chiffre zéro.
  • Taper un point-virgule (;) pour passer dans la branche Alors de la fonction conditionnelle,
  • Inscrire deux chiffres zéro entre guillemets, soit : '00',
  • Taper le symbole de concaténation (&) pour annoncer l'association à suivre,
  • Puis, désigner de nouveau le champ de référence par son nom entre crochets : [c_num],
  • Taper un point-virgule (;) pour passer dans la branche Sinon de la fonction conditionnelle,
  • Désigner une fois encore le champ de référence : [c_num],
Pour l'instant, lorsque le numéro n'est pas une unité, nous nous contentons de le retranscrire tel quel.
  • Fermer la parenthèse de la fonction VraiFaux,
  • Puis, taper le symbole de concaténation (&) pour l'assemblage avec les lettres prélevées,
  • Valider l'expression avec la touche Entrée du clavier,
  • Enregistrer la requête et l'exécuter,
Comme vous pouvez le voir, nous progressons. Chaque chaine de texte est désormais préfixée d'un numéro. Mais lorsque la dizaine est dépassée, l'équilibre n'est pas atteint en longueur. Nous devons imbriquer une seconde fonction VraiFaux dans la première. Ainsi, nous allons pouvoir traiter le cas de la dizaine et de la centaine.
  • Revenir en mode conception de la requête,
  • Puis adapter et faire évoluer l'expression comme suit :
c_id:VraiFaux([c_num]<10;'00' & [c_num];VraiFaux([c_num]<100;'0' & [c_num];[c_num])) & Gauche([c_nom];3) & Gauche([c_prenom];3)

Veillez à bien fermer deux parenthèses pour les fonctions VraiFaux. La première englobe la seconde.

Créer un identifiant de texte unique, personnalisé et autoincrémenté avec une requête Access

En exécutant la requête, vous constatez que nous sommes parvenus à générer des identifiants de connexion uniques, équilibrés en nombre de caractères et tout à fait personnalisé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