Accueil > > > CONTRÔLER LA SAISIE D'UN E-MAIL
CONTRÔLER LA SAISIE D'UN E-MAIL
Information sur la source
Description
Voici une fonction qui permet de contrôler le format d'une adresse mail saisie dans un formulaire Access (toutes versions).
Source
- Function EmailValide(sAdresse) As Boolean
- Const Accents = "àáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
- Const CarInterdits = ",;#`'/*+:\&<>~{}=)([]|?§"
-
- Dim TestAdrMail As Boolean, TestAccents, TestCarInterdits As Boolean
- Dim i As Integer
- Dim pos_point, pos_point2, pos_arobase, pos_arobase2 As Integer
-
- If Len(sAdresse) = 0 Or IsNull(sAdresse) Then
- TestAdrMail = True
- Else
- pos_arobase = InStr(1, sAdresse, "@")
- 'Vérifie qu'il n'y a pas plusieurs @ dans l'adresse mail
- pos_arobase2 = InStr(1, Right(sAdresse, Len(sAdresse) - pos_arobase), "@")
- 'Position du . après l'@
- pos_point = InStr(pos_arobase + 1, sAdresse, ".")
- 'Position du . avant l'@
- pos_point2 = InStr(pos_arobase - 1, sAdresse, ".")
-
- 'Critères de validité :
- '@ pas en première position
- 'Pas de . en 1ère position
- 'Pas de @.
- 'Pas de .@
- 'Au moins 2 caractères dans l'adresse
- 'Pas d'@ après le 1er @
- If (pos_arobase > 1 And pos_point > 1 And Len(sAdresse) > 2 And pos_point - pos_arobase > 1 And pos_arobase - pos_point2 > 1 And pos_arobase2 = 0) Then
- TestAdrMail = True
- Else
- TestAdrMail = False
- End If
- End If
-
- 'Vérifie qu'il n'y a pas de caractères accentués dans l'adresse mail
- TestAccents = True
-
- For i = 1 To Len(sAdresse)
- If InStr(1, Accents, LCase(Mid(sAdresse, i, 1))) > 0 Then
- TestAccents = False
- Exit For
- End If
- Next
-
- 'Vérifie qu'il n'y a pas de caractères exclus dans l'adresse mail
- TestCarInterdits = True
-
- For i = 1 To Len(sAdresse)
- If InStr(1, CarInterdits, LCase(Mid(sAdresse, i, 1))) > 0 Then
- TestCarInterdits = False
- Exit For
- End If
- Next
-
- EmailValide = TestAdrMail And TestAccents And TestCarInterdits And ChercheEspace(sAdresse) = False
- End Function
-
- Function ChercheEspace(ByVal LETEXTE As String)
- Const strSpacer = " "
- Dim TestEspace As Boolean
- Dim i As Integer
-
- TestEspace = False
-
- For i = 1 To Len(LETEXTE)
- If InStr(1, strSpacer, LCase(Mid(LETEXTE, i, 1))) > 0 Then
- TestEspace = True
- Exit For
- End If
- Next
-
- ChercheEspace = TestEspace
- End Function
Function EmailValide(sAdresse) As Boolean
Const Accents = "àáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
Const CarInterdits = ",;#`'/*+:\&<>~{}=)([]|?§"
Dim TestAdrMail As Boolean, TestAccents, TestCarInterdits As Boolean
Dim i As Integer
Dim pos_point, pos_point2, pos_arobase, pos_arobase2 As Integer
If Len(sAdresse) = 0 Or IsNull(sAdresse) Then
TestAdrMail = True
Else
pos_arobase = InStr(1, sAdresse, "@")
'Vérifie qu'il n'y a pas plusieurs @ dans l'adresse mail
pos_arobase2 = InStr(1, Right(sAdresse, Len(sAdresse) - pos_arobase), "@")
'Position du . après l'@
pos_point = InStr(pos_arobase + 1, sAdresse, ".")
'Position du . avant l'@
pos_point2 = InStr(pos_arobase - 1, sAdresse, ".")
'Critères de validité :
'@ pas en première position
'Pas de . en 1ère position
'Pas de @.
'Pas de .@
'Au moins 2 caractères dans l'adresse
'Pas d'@ après le 1er @
If (pos_arobase > 1 And pos_point > 1 And Len(sAdresse) > 2 And pos_point - pos_arobase > 1 And pos_arobase - pos_point2 > 1 And pos_arobase2 = 0) Then
TestAdrMail = True
Else
TestAdrMail = False
End If
End If
'Vérifie qu'il n'y a pas de caractères accentués dans l'adresse mail
TestAccents = True
For i = 1 To Len(sAdresse)
If InStr(1, Accents, LCase(Mid(sAdresse, i, 1))) > 0 Then
TestAccents = False
Exit For
End If
Next
'Vérifie qu'il n'y a pas de caractères exclus dans l'adresse mail
TestCarInterdits = True
For i = 1 To Len(sAdresse)
If InStr(1, CarInterdits, LCase(Mid(sAdresse, i, 1))) > 0 Then
TestCarInterdits = False
Exit For
End If
Next
EmailValide = TestAdrMail And TestAccents And TestCarInterdits And ChercheEspace(sAdresse) = False
End Function
Function ChercheEspace(ByVal LETEXTE As String)
Const strSpacer = " "
Dim TestEspace As Boolean
Dim i As Integer
TestEspace = False
For i = 1 To Len(LETEXTE)
If InStr(1, strSpacer, LCase(Mid(LETEXTE, i, 1))) > 0 Then
TestEspace = True
Exit For
End If
Next
ChercheEspace = TestEspace
End Function
Conclusion
Explications (voir aussi les commentaires !!!!) Pour qu'une adresse mail soit valide, il faut : - Qu'elle ait au moins 2 caractères - 1 et un seul @ - Pas de @. ni de .@ - Pas d'accents - Pas de caractères spéciaux comme ,;#`'/*+:\&<>~{}=)([]|?§ - L'@ ne doit pas être en 1ère position
Les tests sont commentés pour une meilleure compréhension de la logique mise en oeuvre.
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
HELP : Appel d'une fonction Excel depuis un formulaire sous Acces... [ par ragnagnac ]
Bonjour à tous,Voilà, j'ai un petit soucis que je vais essayer d'expliquer le plus clairement possible.Je développe une application sous Access2000 en
ACCESS [ par gosbos2003 ]
Est-il possible dans un formulaire de modifier un champs en fonction de la valeur d'une liste modifiable?Par exemple, j'ai une table de client, certai
programmation VBA avec ACCESS 2000 [ par michel_b ]
j ai un probleme avec la roulette de la souris dans les formulaires en effet quand je l utilise elle fait défiler les enregistrements mais il y a
Dans un formulaire Access, lancer une fonction toutes les minutes [ par le_highlander ]
Bonjour, J'aimerais créer un bouton qui lorsque l'utilisateur clique dessus lance toutes les minutes une fonction que j'ai écrite. Et acces
formulaire sous access 2003 [ par aminix9 ]
Bonjour tous le monde,je travaille sur une BD sous access 2003, j'ai crée un formulaire surlequel j ai mis un bouton de commande pour quitter le formu
Probleme d'affichage sur un tableau access [ par ragna25 ]
BonjourVoila je suis sur access (97) , j'ai fait un tableau sur un formulaire, j'interroge ma base avec un requette, ça marche correctement, ça affich
pb pour ouvrir un formulaire en VBA dans access [ par leroi1024 ]
Bonjour. Je rencontre un problème pour ouvrir un formulaire dans access par programmation. Je voudrais qu'en cliquant sur un bouton, un autre formulai
Recordset et creation formulaire dynamique sous access [ par fredieuric ]
Bonjour à tous,Sous Access 2003 SP2,J'ai récupéré un code source que j'essaye d'adapter à mes besoins (à savoir créer dynamiquement un formulaire en f
Formulaire Access et pourcentage d'avancement [ par Goste ]
Bonjour, Je dois créer unTableau d'avancement par pourcentage à partir de jalons contenus dans une base de donnée Access. Ma base de donnée ressemble
formulaire de recherche multi critère sous Access [ par anadeveloppeur ]
Bonsoir, j'espère que j'ai posté dans le bon forum (je n'ai pas toruvé plus mieux) Je veux créer un formulaire de recherche sous Access, qui prend en
|
Derniers Blogs
[HTML5] SLIDES ET DéMOS : AUTOUR DU W3C , NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] SLIDES ET DéMOS : AUTOUR DU W3C , NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Très bonne après-midi passée lors cette conférence avec le W3C, organisée par L' Inria sur les nouveaux standards, ce Mardi 14 Février, on sent vraiment que çà bosse au W3C, et l'avenir est très très prometteur pour le HTML5, notamment ...
Cliquez pour lire la suite de l'article par Gio GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|