Access 2010 - Validitätsprüfung email-Adresse ?
Hallo,
Habe in einem Access 2010 - Formular ein Feld mit einer email-Adresse.
Vor dem Senden der email möchte ich gerne prüfen, ob die email-Adresse valide ist (z.b. info@xxxx.at)
Hat jemand passenden VBA-Code dafür?
Vielen Dank
LG IngChris
Habe in einem Access 2010 - Formular ein Feld mit einer email-Adresse.
Vor dem Senden der email möchte ich gerne prüfen, ob die email-Adresse valide ist (z.b. info@xxxx.at)
Hat jemand passenden VBA-Code dafür?
Vielen Dank
LG IngChris
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 164577
Url: https://administrator.de/contentid/164577
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
4 Kommentare
Neuester Kommentar
Moin.
Vieleicht hilft Dir folgende Funktion?
Die habe ich mal im Netz gefunden und etwas erweitert...
[code]
Public Function EmailPruefen(feld As String) As Integer
'Funktion gibt 0 oder 1 zurück
Dim Form As Object 'Haupt- oder Unterformaular
Set Form = Forms(Screen.ActiveForm.Name) 'Oder welches Formular das auch immer ist
'Prüfung ob es sich um eine gültige Mailadresse handelt.
Dim Ch As String * 1, I As Long, Ats As Long, Periods As Long
Dim LeftofAt As Boolean, IsLeading As Boolean, gueltig As Boolean
LeftofAt = True
IsLeading = True
gueltig = True
Periods = 0
Ats = 0
EmailPruefen = 0
Set bezfeld = Form("Bez_" & feld)
If (Form(feld) <> "") Then
For I = 1 To Len(Form(feld))
Select Case Asc(Mid(Form(feld), I, 1))
Case Asc("@")
Ats = Ats + 1
' links vom "@" muss wenigstens ein Zeichen sein:
If I = 1 Then
gueltig = False
Exit For
End If
' nur ein "@" erlaubt:
If Ats > 1 Then
gueltig = False
Exit For
End If
LeftofAt = False
IsLeading = True
Case Asc(".")
' Punkte rechts vom "@" zählen:
If Not LeftofAt Then Periods = Periods + 1
' Top Level Domain hat weniger als 2 Zeichen:
If I > Len(Form(feld)) - 2 Then
gueltig = False
Exit For
End If
Case Asc("A") To Asc("Z"), Asc("a") To Asc("z"), Asc("0") To Asc("9")
IsLeading = False
Case Asc("-")
' kein führendes "-" erlaubt:
If IsLeading Then
gueltig = False
Exit For
End If
Case Asc("_")
' "_" nur links vom "@" erlaubt:
If IsLeading Or Not LeftofAt Then
gueltig = False
Exit For
End If
Case Else
' andere Zeichen sind nicht zulässig:
gueltig = False
Exit For
End Select
Next
'Ein Punkt muss in den Letzten fünf Stellen vorhanden sein!
If InStr(Len(Form(feld)) - 5, Form(feld), ".") = 0 Or InStr(Form(feld), "@") = 0 Then
gueltig = False
End If
If (gueltig = True) Then
EmailPruefen = 0
Else
MsgBox "Kein gültiges Mail-Format!"
EmailPruefen = 1
End If
End If
End Function
[/code]
HTH
MK
Vieleicht hilft Dir folgende Funktion?
Die habe ich mal im Netz gefunden und etwas erweitert...
[code]
Public Function EmailPruefen(feld As String) As Integer
'Funktion gibt 0 oder 1 zurück
Dim Form As Object 'Haupt- oder Unterformaular
Set Form = Forms(Screen.ActiveForm.Name) 'Oder welches Formular das auch immer ist
'Prüfung ob es sich um eine gültige Mailadresse handelt.
Dim Ch As String * 1, I As Long, Ats As Long, Periods As Long
Dim LeftofAt As Boolean, IsLeading As Boolean, gueltig As Boolean
LeftofAt = True
IsLeading = True
gueltig = True
Periods = 0
Ats = 0
EmailPruefen = 0
Set bezfeld = Form("Bez_" & feld)
If (Form(feld) <> "") Then
For I = 1 To Len(Form(feld))
Select Case Asc(Mid(Form(feld), I, 1))
Case Asc("@")
Ats = Ats + 1
' links vom "@" muss wenigstens ein Zeichen sein:
If I = 1 Then
gueltig = False
Exit For
End If
' nur ein "@" erlaubt:
If Ats > 1 Then
gueltig = False
Exit For
End If
LeftofAt = False
IsLeading = True
Case Asc(".")
' Punkte rechts vom "@" zählen:
If Not LeftofAt Then Periods = Periods + 1
' Top Level Domain hat weniger als 2 Zeichen:
If I > Len(Form(feld)) - 2 Then
gueltig = False
Exit For
End If
Case Asc("A") To Asc("Z"), Asc("a") To Asc("z"), Asc("0") To Asc("9")
IsLeading = False
Case Asc("-")
' kein führendes "-" erlaubt:
If IsLeading Then
gueltig = False
Exit For
End If
Case Asc("_")
' "_" nur links vom "@" erlaubt:
If IsLeading Or Not LeftofAt Then
gueltig = False
Exit For
End If
Case Else
' andere Zeichen sind nicht zulässig:
gueltig = False
Exit For
End Select
Next
'Ein Punkt muss in den Letzten fünf Stellen vorhanden sein!
If InStr(Len(Form(feld)) - 5, Form(feld), ".") = 0 Or InStr(Form(feld), "@") = 0 Then
gueltig = False
End If
If (gueltig = True) Then
EmailPruefen = 0
Else
MsgBox "Kein gültiges Mail-Format!"
EmailPruefen = 1
End If
End If
End Function
[/code]
HTH
MK