Avatar billede j30 Nybegynder
14. maj 2002 - 10:59 Der er 14 kommentarer og
3 løsninger

Inputmaske

Jeg skal lave en inputmaske på en mail adresse hvordan gør jeg det @ skal være konstant og så skal jeg jo kunne indtaste påhøjre og venstre side af det ????
Avatar billede terry Ekspert
14. maj 2002 - 11:01 #1
doesn an Email address have a fixed format? No I dont think it does, so it wont be easy1
Avatar billede julle Nybegynder
14. maj 2002 - 11:07 #2
Sæt @ som standard værdi?
Avatar billede jkrons Professor
14. maj 2002 - 11:07 #3
Enig med Terry

Du kan prøve med CCCCCCCC\@CCCCCCCCCCCCC eller noget i den stil, men det kræver at e-mail adressen altid har samme antal tegn før @. Ellrs bliver der bare fyldt op med det, der kommer efter.
Avatar billede hansk Nybegynder
14. maj 2002 - 11:07 #4
Jeg fandt lige en funktion:

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
Avatar billede jkrons Professor
14. maj 2002 - 11:09 #5
julle->Ikke forstået. Standardværdi sikrer på ingen måde, at der @ ikke overskrives.
Avatar billede jkrons Professor
14. maj 2002 - 11:11 #6
hansk-> Stiller funktionen ikke krav om at e-mail adressen altid har en bestemt minimuslængde?
Avatar billede hansk Nybegynder
14. maj 2002 - 11:13 #7
Hvis du absolut vil have @ stående som konstant, kan du jo dele adressen op i tre unboundede felter og så samle dem i et fjerde felt som du binder til database.
Avatar billede hansk Nybegynder
14. maj 2002 - 11:16 #8
jkrons> Jo det gør den (på 8 karakterer). jeg mener ikke at have set adresser på under 8 karakterer?
Avatar billede jkrons Professor
14. maj 2002 - 11:16 #9
Et alternativ kunne være at lave to felter. Et til brugernavnsdelen og et til servernavnsdelen og så konkatenere dem med et @ i forbindelse med en forespørgsel, når de skal anvendes.

fx E-mail: [Brugernavn]&"@"&[Servernavn]
Avatar billede jkrons Professor
14. maj 2002 - 11:20 #10
hansk->Det har jeg, fx go@go.dk

men derudover kræver din funktion jo at @ er indtastet! Og som jeg forstod sapørgsmålet, var det netop det j30 ville undgå ved at lave ne inputmaske. Din funktion undersøger "bare" om noget der er indtastes er en (kan være en) e-mail adresse.
Avatar billede hansk Nybegynder
14. maj 2002 - 11:22 #11
jkrons-> hvordan tæller du? Jeg kan tælle til 8 karakterer i adressen.
Avatar billede jkrons Professor
14. maj 2002 - 11:24 #12
hansk->Du har ret. Jeg må mangle en finger ;-)
Avatar billede j30 Nybegynder
14. maj 2002 - 11:29 #13
Jeg er ikke blevet meget klogere eller er jeg, hvad er løsningen
Avatar billede hansk Nybegynder
14. maj 2002 - 11:34 #14
Du må selv vælge, du har fået flere løsninger.
1:brug 3 felter og sæt den sammen til 1 felt.
2:brug 1 felt og check formatet via funktionen IsEMailAddress
Avatar billede jkrons Professor
14. maj 2002 - 11:34 #15
j30-> Jeg tror den eneste løsning er en opdeling i flere felter. Problemet kan ikke løses med inputmaske.
Avatar billede jkrons Professor
14. maj 2002 - 12:48 #16
Tak for point
Avatar billede terry Ekspert
14. maj 2002 - 12:48 #17
tak:o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester