formateur informatique

Mot de passe avec lettre en majuscule et chiffre

Accueil  >  Bureautique  >  Access  >  Access VBA  >  Mot de passe avec lettre en majuscule et chiffre
Livres à télécharger


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


Inscription Newsletter    Abonner à Youtube    Vidéos astuces Instagram
Sujets que vous pourriez aussi aimer :


Mot de passe alphanumérique

Dans les deux précédents volets, nous avons construit des fonctions VBA Access pour tester qu'une saisie était exclusivement composée de lettres de l'alphabet et qu'une autre, nécessairement codée sur 6 caractères, n'était faite que de chiffres. Dans ce nouveau volet, nous allons voir comment contrôler un mot de passe alphanumérique, avec des contraintes supplémentaires.

Mot de passe Access avec lettres majuscules, minuscules et chiffres

Dans l'exemple illustré par la capture, le mot de passe tapé dans la troisième zone de texte, n'est autorisé que sous certaines conditions. Il doit être codé sur 5 caractères, ni plus ni moins. Il doit présenter au moins une lettre en majuscule, au moins une autre en minuscule et au moins un chiffre.

Base de données Access à télécharger
Pour la découverte de cette nouvelle astuce, nous proposons d'agir à partir de la base de données des travaux précédents, hébergeant ces trois zones de saisie à contrôler.
  • Télécharger le fichier compressé tester-alphanumerique.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,
  • Cliquer sur le bouton Activer le contenu du bandeau de sécurité,
  • Dans le volet de navigation sur la gauche, double cliquer sur le formulaire F_Inscription,
Nous l'affichons ainsi en mode exécution. Les deux premières zones de texte attendent donc respectivement la saisie d'une information exclusivement textuelle et d'une donnée totalement numérique sur 6 chiffres. La troisième doit recevoir le mot de passe alphanumérique sur 5 caractères. Mais il n'est pas encore contrôlé puisque nous devons bâtir la fonction dédiée dans ce nouveau volet.

La fonction de contrôle
Comme pour les deux volets précédents, nous proposons de bâtir une fonction VBA publique hébergée par un module indépendant. Elle pourra ainsi être utilisée sur n'importe quel formulaire de l'application Access pour opérer ses contrôles.
  • Dans le volet de navigation, double cliquer sur l'élément Module1,
Nous basculons ainsi dans l'éditeur VBA Access et nous retrouvons les deux fonctions que nous avions bâties pour contrôler respectivement la saisie exclusive de lettres et la saisie seulement de chiffres sur un nombre précis de caractères.

Comme la fonction que nous devons bâtir doit suivre le même protocole, en instanciant la classe des expressions régulières, nous proposons de dupliquer l'une des deux existantes. Ensuite, nous l'adapterons.
  • Sélectionner tout le code de la fonction estChiffres,
  • Le copier (CTRL + C) et le coller (CTRL + V) en-dessous,
  • Puis, changer son nom à chaque fois qu'il est utilisé, comme suit :
Public Function estAlphaNum(saisie As Variant) As String
Dim expReg As Object

If IsNull(saisie) = False Then
Set expReg = CreateObject("VBScript.RegExp")
expReg.Pattern = "^([0-9]){6}$"
If (expReg.Test(saisie)) Then
estAlphaNum = "Saisie acceptée."
Else
estAlphaNum = "* Saisie refusée. Seul un identifiant de 6 chiffres est autorisé."
End If
Else
estAlphaNum = ""
End If

Set expReg = Nothing

End Function


La séquence alphanumérique
Maintenant, nous devons construire la séquence de l'expression régulière capable de vérifier que la saisie de l'utilisateur est bien alphanumérique, soit composée de lettres et de chiffres. C'est donc la valeur de la propriété Pattern de l'objet expReg que nous devons adapter. La séquence classique d'une expression régulière pour autoriser une saisie alphanumérique est de la forme suivante :

"^([A-Za-z0-9]){5}$"

Elle indique que toute lettre de l'alphabet est autorisée, en majuscule comme en minuscule (A-Za-z). Mais elle indique aussi que tout chiffre de 0 à 9 (0-9) est autorisé et tout cela, nécessairement sur 5 caractères ({5}). Cependant, autoriser ne veut pas dire imposer. En conséquence, les suites de lettres comme abcde ou de chiffres comme 12345 passeraient. Or, nous souhaitons imposer la saisie d'au moins une lettre en minuscule, d'une autre en majuscule et d'au moins un chiffre, le tout sur 5 caractères. Donc, nous avons besoin d'une expression régulière quelque peu plus complexe.
  • Remplacer la séquence de la propriété Pattern par la suivante :
expReg.Pattern = "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{5}$"

C'est une forme particulière certes et voici ce qu'il faut retenir. Nous imposons la saisie d'une ou de plusieurs (?=.*?) lettres en majuscules ([A-Z]). Nous imposons de même la saisie d'une ou de plusieurs (?=.*?) lettres en minuscules ([a-z]). Enfin, nous imposons aussi l'inscription d'un ou de plusieurs (?=.*?) chiffres ([0-9]). Et cette inscription doit comporter 5 caractères précisément, tout en respectant ces règles énoncées. Avant de tester, nous devons encore adapter le message de refus.
  • Modifier l'indication d'échec, comme suit :
If (expReg.Test(saisie)) Then
estAlphaNum = "Saisie acceptée."
Else
estAlphaNum = "* Sur 5 caractères, au moins 1 chiffre et 1 lettre et 1 majuscule."
End If
Else
estAlphaNum = ""


Vérifier la saisie alphanumérique
Désormais, nous devons enclencher la fonction estAlphaNum dans la propriété Source contrôle d'une zone de texte du formulaire, pour vérifier en temps réel la saisie du mot de passe alphanumérique.
  • Enregistrer les modifications (CTRL + S) et revenir sur le formulaire en exécution (ALT + Tab),
  • A gauche du ruban Accueil, cliquer sur la flèche du bouton Affichage,
  • Dans les propositions, choisir le mode Création,
  • Sur le formulaire en conception, cliquer sur la zone de texte à droite du mot de passe,
  • Activer alors l'onglet Données de sa feuille de propriétés,
  • Puis cliquer dans la zone vide de sa propriété Source contrôle,
Propriété source contrôle de zone de texte pour fonction de contrôle VBA Access
  • Dès lors, cliquer sur le petit bouton placé à droite de la propriété Source contrôle,
Nous affichons ainsi le générateur d'expression.
  • Dans la zone de saisie du générateur, taper la formule suivante :
=estAlphaNum([motPasse])

En paramètre de notre fonction estAlphaNum nous passons donc le contenu de la zone de saisie du mot de passe qui est reconnue sous le nom motPasse.
  • Cliquer sur le bouton Ok du générateur pour valider l'expression,
  • De retour sur le formulaire, l'enregistrer (CTRL + S), puis l'exécuter (F5),
  • Puis, entrer et valider un mot de passe alphanumérique dans la troisième zone de texte,
Contrôler la saisie du mot de passe alphanumérique sur un formulaire avec une fonction VBA Access

Désormais, si votre mot de passe ne fait pas précisément 5 caractères avec au moins une majuscule et une minuscule ainsi qu'un chiffre, il est refusé. En revanche, dès lors qu'il respecte toutes les règles imposées par la séquence de l'expression régulière, il est accepté.

Mot de passe avec majuscule, minuscule et chiffre sur formulaire Access

 
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