Je n'arrive pas à valider une adresse email saisie dans un champs Access
Résolu/Fermé
traderpierre
Messages postés
291
Date d'inscription
mercredi 11 octobre 2006
Statut
Membre
Dernière intervention
6 janvier 2024
-
10 mai 2020 à 12:38
RV71 Messages postés 610 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 27 novembre 2024 - 10 mai 2020 à 20:29
RV71 Messages postés 610 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 27 novembre 2024 - 10 mai 2020 à 20:29
A voir également:
- Je n'arrive pas à valider une adresse email saisie dans un champs Access
- Ethernet n'a pas de configuration ip valide - Guide
- Rechercher ou entrer l'adresse - Guide
- Darkino nouvelle adresse - Guide
- Créer une adresse hotmail - Guide
- Darkino : le grand site pirate change d'adresse et d'interface - Accueil - Services en ligne
4 réponses
RV71
Messages postés
610
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 novembre 2024
31
10 mai 2020 à 13:57
10 mai 2020 à 13:57
Bonjour,
as-tu bien ajouté la référence comme indiqué ?
VBA ne gère pas nativement les expressions rationnelles, vous devez donc ajouter à votre projet une bibliothèque qui le fait :
Démarrez VBE (Visual Basic Editor).
Cliquez sur le menu Outils / Références.
Dans la liste des références, cochez Microsoft VBScript Regular Expressions(5.5, à ce jour).
A+
as-tu bien ajouté la référence comme indiqué ?
VBA ne gère pas nativement les expressions rationnelles, vous devez donc ajouter à votre projet une bibliothèque qui le fait :
Démarrez VBE (Visual Basic Editor).
Cliquez sur le menu Outils / Références.
Dans la liste des références, cochez Microsoft VBScript Regular Expressions(5.5, à ce jour).
A+
traderpierre
Messages postés
291
Date d'inscription
mercredi 11 octobre 2006
Statut
Membre
Dernière intervention
6 janvier 2024
6
Modifié le 10 mai 2020 à 15:28
Modifié le 10 mai 2020 à 15:28
J'y suis arrivé avec d'autres fonctions complète que j'ai trouvé sur le web, le problème est maintenant résolu
RV71
Messages postés
610
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 novembre 2024
31
10 mai 2020 à 15:29
10 mai 2020 à 15:29
Tu aurais pu dire comment du coup...
Et mettre le sujet comme résolu.
A+
Et mettre le sujet comme résolu.
A+
traderpierre
Messages postés
291
Date d'inscription
mercredi 11 octobre 2006
Statut
Membre
Dernière intervention
6 janvier 2024
6
10 mai 2020 à 19:59
10 mai 2020 à 19:59
Voici la solution détaillée point par point :
Access - Vérification et validation d'adresse email saisie dan le champ Email
Placer ce code Fonction dans un module standard
_____________________________________________________
Public Function AdresseEmailValide(ByVal EmailAVerifier As String) As Boolean
'définition des variables et des constantes
Const CaracteresAdmisUtilisateur = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.!#$%&'*+-/=?^_`{|}~"
Const CaracteresAdmisDomaine = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.-"
Dim NomUtilisateur As String
Dim EmplacementArobase As Integer
Dim Domaine As String
'vérification de l'adresse
EmplacementArobase = InStr(1, EmailAVerifier, "@")
If EmplacementArobase = 0 Then GoTo AdresseIncorrecte
If InStr(EmplacementArobase + 1, EmailAVerifier, "@") > 0 Then GoTo AdresseIncorrecte
NomUtilisateur = Left(EmailAVerifier, EmplacementArobase - 1)
Domaine = Right(EmailAVerifier, Len(EmailAVerifier) - EmplacementArobase)
Suffixe = Right(EmailAVerifier, Len(EmailAVerifier) - InStrRev(EmailAVerifier, "."))
If Left(NomUtilisateur, 1) = "." Or Right(NomUtilisateur, 1) = "." Then GoTo AdresseIncorrecte
If InStr(1, Domaine, ".") = 0 Then GoTo AdresseIncorrecte
If Left(Domaine, 1) = "." Or Right(Domaine, 1) = "." Then GoTo AdresseIncorrecte
If Left(Domaine, 1) = "-" Or Right(Domaine, 1) = "-" Then GoTo AdresseIncorrecte
If Len(Suffixe) < 2 Then GoTo AdresseIncorrecte
For i = 1 To Len(NomUtilisateur)
If InStr(1, CaracteresAdmisUtilisateur, Mid(NomUtilisateur, i, 1)) = 0 Then GoTo AdresseIncorrecte
Next
For i = 1 To Len(Domaine)
If InStr(1, CaracteresAdmisDomaine, Mid(Domaine, i, 1)) = 0 Then GoTo AdresseIncorrecte
Next
For i = 1 To Len(EmailAVerifier)
If Mid(EmailAVerifier, i, 1) = "." And Mid(EmailAVerifier, i + 1, 1) = "." Then GoTo AdresseIncorrecte
Next i
AdresseEmailValide = True
Exit Function
AdresseIncorrecte:
AdresseEmailValide = False
End Function
_____________________________________________________________
Ensuite dans l'évènement après mise à jour du champ Email placer cette vérification avec alerte MsgBox + son Beep d'alerte
_____________________________________________________________
Private Sub Email_AfterUpdate()
AdresseEmail = Me.Email
Verification = AdresseEmailValide(AdresseEmail)
If Verification = False Then
Beep
MsgBox "Cette adresse e-mail n'est pas valide..."
End If
End Sub
Access - Vérification et validation d'adresse email saisie dan le champ Email
Placer ce code Fonction dans un module standard
_____________________________________________________
Public Function AdresseEmailValide(ByVal EmailAVerifier As String) As Boolean
'définition des variables et des constantes
Const CaracteresAdmisUtilisateur = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.!#$%&'*+-/=?^_`{|}~"
Const CaracteresAdmisDomaine = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.-"
Dim NomUtilisateur As String
Dim EmplacementArobase As Integer
Dim Domaine As String
'vérification de l'adresse
EmplacementArobase = InStr(1, EmailAVerifier, "@")
If EmplacementArobase = 0 Then GoTo AdresseIncorrecte
If InStr(EmplacementArobase + 1, EmailAVerifier, "@") > 0 Then GoTo AdresseIncorrecte
NomUtilisateur = Left(EmailAVerifier, EmplacementArobase - 1)
Domaine = Right(EmailAVerifier, Len(EmailAVerifier) - EmplacementArobase)
Suffixe = Right(EmailAVerifier, Len(EmailAVerifier) - InStrRev(EmailAVerifier, "."))
If Left(NomUtilisateur, 1) = "." Or Right(NomUtilisateur, 1) = "." Then GoTo AdresseIncorrecte
If InStr(1, Domaine, ".") = 0 Then GoTo AdresseIncorrecte
If Left(Domaine, 1) = "." Or Right(Domaine, 1) = "." Then GoTo AdresseIncorrecte
If Left(Domaine, 1) = "-" Or Right(Domaine, 1) = "-" Then GoTo AdresseIncorrecte
If Len(Suffixe) < 2 Then GoTo AdresseIncorrecte
For i = 1 To Len(NomUtilisateur)
If InStr(1, CaracteresAdmisUtilisateur, Mid(NomUtilisateur, i, 1)) = 0 Then GoTo AdresseIncorrecte
Next
For i = 1 To Len(Domaine)
If InStr(1, CaracteresAdmisDomaine, Mid(Domaine, i, 1)) = 0 Then GoTo AdresseIncorrecte
Next
For i = 1 To Len(EmailAVerifier)
If Mid(EmailAVerifier, i, 1) = "." And Mid(EmailAVerifier, i + 1, 1) = "." Then GoTo AdresseIncorrecte
Next i
AdresseEmailValide = True
Exit Function
AdresseIncorrecte:
AdresseEmailValide = False
End Function
_____________________________________________________________
Ensuite dans l'évènement après mise à jour du champ Email placer cette vérification avec alerte MsgBox + son Beep d'alerte
_____________________________________________________________
Private Sub Email_AfterUpdate()
AdresseEmail = Me.Email
Verification = AdresseEmailValide(AdresseEmail)
If Verification = False Then
Beep
MsgBox "Cette adresse e-mail n'est pas valide..."
End If
End Sub
RV71
Messages postés
610
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 novembre 2024
31
10 mai 2020 à 20:29
10 mai 2020 à 20:29
OK,
mais c'est bien lourd, alors que tu n'avais que qq lignes à écrire avec la bonne référence.
Du moment que ça fonctionne tu me diras....
A+
mais c'est bien lourd, alors que tu n'avais que qq lignes à écrire avec la bonne référence.
Du moment que ça fonctionne tu me diras....
A+