Results 1 to 4 of 4
  1. #1
    cebrower is offline Competent Performer
    Windows 7 64bit Access 2010 32bit
    Join Date
    Mar 2018
    Location
    Spring Lake, MI
    Posts
    110

    Test for valid email address


    How can I test for the @ sign when a user enters an email address in a text box in our customer table?

  2. #2
    pbaldy's Avatar
    pbaldy is online now Who is John Galt?
    Windows XP Access 2007
    Join Date
    Feb 2010
    Location
    Nevada, USA
    Posts
    22,521
    The InStr() function can be used for that. I'd probably use something more comprehensive.
    Paul (wino moderator)
    MS Access MVP 2007-2019
    www.BaldyWeb.com

  3. #3
    cebrower is offline Competent Performer
    Windows 7 64bit Access 2010 32bit
    Join Date
    Mar 2018
    Location
    Spring Lake, MI
    Posts
    110
    Thanks - I should have thought of that.

  4. #4
    Gicu's Avatar
    Gicu is offline VIP
    Windows 10 Access 2010 32bit
    Join Date
    Jul 2015
    Location
    Kelowna, BC, Canada
    Posts
    4,115
    Here is a function I've been using for a long time:
    Code:
    Public Function IsEMailAddress(ByVal sEmail As String, _
        Optional ByRef sReason As String) As Boolean
            
        Dim sPreffix As String
        Dim sSuffix As String
        Dim sMiddle As String
        Dim nCharacter As Integer
        Dim sBuffer As String
    
    
        sEmail = Trim(sEmail)
    
    
        If Len(sEmail) < 8 Then
            IsEMailAddress = False
            sReason = "Too short"
            Exit Function
        End If
    
    
    
    
        If InStr(sEmail, "@") = 0 Then
            IsEMailAddress = False
            sReason = "Missing the @"
            Exit Function
        End If
    
    
    
    
        If InStr(InStr(sEmail, "@") + 1, sEmail, "@") <> 0 Then
            IsEMailAddress = False
            sReason = "Too many @"
            Exit Function
        End If
    
    
    
    
        If InStr(sEmail, ".") = 0 Then
            IsEMailAddress = False
            sReason = "Missing the period"
            Exit Function
        End If
    
    
        If InStr(sEmail, "@") = 1 Or InStr(sEmail, "@") = Len(sEmail) Or _
            InStr(sEmail, ".") = 1 Or InStr(sEmail, ".") = Len(sEmail) Then
            IsEMailAddress = False
            sReason = "Invalid format"
        Exit Function
    
    
    End If
    
    
    
    
    For nCharacter = 1 To Len(sEmail)
        sBuffer = Mid$(sEmail, nCharacter, 1)
        If Not (LCase(sBuffer) Like "[a-z]" Or sBuffer = "@" Or _
        sBuffer = "." Or sBuffer = "-" Or sBuffer = "_" Or _
        IsNumeric(sBuffer)) Then: IsEMailAddress = _
        False: sReason = "Invalid character": Exit Function
    Next nCharacter
    
    
    nCharacter = 0
    
    
    On Error Resume Next
    
    
    sBuffer = Right(sEmail, 4)
    If InStr(sBuffer, ".") = 0 Then GoTo TooLong:
    If Left(sBuffer, 1) = "." Then sBuffer = Right(sBuffer, 3)
    If Left(Right(sBuffer, 3), 1) = "." Then sBuffer = Right(sBuffer, 2)
    If Left(Right(sBuffer, 2), 1) = "." Then sBuffer = Right(sBuffer, 1)
    
    
    
    
    If Len(sBuffer) < 2 Then
        IsEMailAddress = False
        sReason = "Suffix too short"
        Exit Function
    End If
    
    
    TooLong:
    
    
    If Len(sBuffer) > 3 Then
        IsEMailAddress = False
        sReason = "Suffix too long"
        Exit Function
    End If
    
    
    sReason = Empty
    IsEMailAddress = True
    
    
    End Function
    Cheers,
    Vlad Cucinschi
    MS Access Developer
    http://forestbyte.com/

Please reply to this thread with any new information or opinions.

Similar Threads

  1. Replies: 2
    Last Post: 05-04-2017, 08:06 AM
  2. Replies: 1
    Last Post: 11-07-2016, 11:18 AM
  3. Email report to value (email address) in a field
    By JackieEVSC in forum Programming
    Replies: 7
    Last Post: 08-28-2015, 11:18 AM
  4. Replies: 1
    Last Post: 05-01-2014, 11:37 AM
  5. Test for valid ODBC connection
    By jgelpi16 in forum Programming
    Replies: 1
    Last Post: 06-10-2011, 01:39 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Other Forums: Microsoft Office Forums