Buon giorno,
Ho creato una tabella dove tra i vari campi c'è anche il campo email, vorrei fare il seguente controllo: il campo è lungo 30 caratteri, quindi vorrei impedire che l'utente possa inserire piu di 30 caratteri e che partendo da destra verso sinistra, si debba inserire per forza (x) caratteri ( ovvero estensione dominio it, com per esempio) seguito dal punto e dopo (x) caratteri si debba inserire obbligatoriamente la (@) ! Spero di aver spiegato bene , ma in sostanza serve per far in modo che l'utente scriva correttamente l' email.
es: esempio@gmail.com il controllo va da destra fino alla @ .
sEmail = right$(RTrim(Me.getControl("Email").Text) + Space(30), 30)
Questa potrebbe essere la prima parte di controllo ma non sono sicuro!
Potete aiutarmi ? grazie
Come controllare il campo email
Come controllare il campo email
OpenOffice 4.1 su Ubuntu 14.04
Re: Come controllare il campo email
Nonostante l'esempio non ho capito bene se lo vuoi fare, con funzioni Calc oppure con una macro
Proviamo la prima - funzioni calc -
devi usare una sequenze di funzioni che verifichino nell' ordine:
- la lunghezza della stringa
- la posizione del carattere @
- dalla posizione@ fino alla fine devi controlare la presenza del "." in 4° o 3° posizione
Adesso hai solo la sicurezza che la stringa non è vuota e contiene una @ ed un "." in posizione compatibile con la sitassi di una email
OPPURE più semplicemente verifichi :
- la presenza di @
- che la stringa termini con ".com" ".it" ".org" .... (ed avresti controllato la gran parte delle estensioni).
Se questi due controlli non sono positivi fai colorare la cella di rosso (formattazione condizionata).
Se invece preferisci scrivere codice VB, ti sbizzarrisci come credi.
saluti
g
Proviamo la prima - funzioni calc -
devi usare una sequenze di funzioni che verifichino nell' ordine:
- la lunghezza della stringa
- la posizione del carattere @
- dalla posizione@ fino alla fine devi controlare la presenza del "." in 4° o 3° posizione
Adesso hai solo la sicurezza che la stringa non è vuota e contiene una @ ed un "." in posizione compatibile con la sitassi di una email
OPPURE più semplicemente verifichi :
- la presenza di @
- che la stringa termini con ".com" ".it" ".org" .... (ed avresti controllato la gran parte delle estensioni).
Se questi due controlli non sono positivi fai colorare la cella di rosso (formattazione condizionata).
Se invece preferisci scrivere codice VB, ti sbizzarrisci come credi.
saluti
g
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
-
Win 7 AOO4.1 + Ubuntu 14.04 AOO4.1 - Esci dall'illegalità: utilizza OpenOffice !
-
Win 7 AOO4.1 + Ubuntu 14.04 AOO4.1 - Esci dall'illegalità: utilizza OpenOffice !
Re: Come controllare il campo email
Buona sera,
ho letto con attenzione g, grazie ! Riporto di seguito la funzione creata manca un controllo e poi potro dire RISOLTO !
Public Function CheckMail(sEMail)
dim a As Integer
dim crt As String
dim crt1 as String
dim punto as integer
dim chiocciola as integer
dim contatore as integer
punto = 0
chiocciola = 0
contatore = 0
'
a = Len(sEMail)
For contatore = 1 to a
crt = Left$(Right$(sEMail,contatore),1)
crt1 = Mid$(Right$(sEMail,contatore),1,1)
'
' msgbox crt & " " & chr$(13) + chr$(10) + crt1
'
select case crt
case is = "."
if punto = 0 Then
punto = contatore
end if
case is = "@"
if chiocciola = 0 Then
chiocciola = contatore
end if
case else
end select
next contatore
'
if punto + chiocciola = 0 then
CheckMail = "Errore! Mancano sia il Dominio che la @"
Exit Function
end if
'
if punto = 0 then
CheckMail = "Errore! Manca il Dominio"
Exit Function
end if
'
if chiocciola = 0 then
CheckMail = "Errore! Manca la @"
Exit Function
end if
'
if punto > chiocciola and chiocciola <> 0 then
CheckMail = "Errore! Manca il Dominio"
Exit Function
end if
'
if punto < chiocciola and punto <> 0 then
CheckMail = "Errore! Manca la @"
Exit Function
end if
'
CheckMail = sEMail
End function
Come potrai notare manca un controllo ! Ovvero : se io scrivessi pippo.topolinogmailcom non mi da errore !
Chiedo scusa se non ho specificato ma mi riferivo a una macro!
La domanda e: se aggiungo al primo if ...or (punto > chiocciola and chiocciola = 0) comunque non va !
Risolto questo ultimo controllo sono felice !
Grazie
ho letto con attenzione g, grazie ! Riporto di seguito la funzione creata manca un controllo e poi potro dire RISOLTO !
Public Function CheckMail(sEMail)
dim a As Integer
dim crt As String
dim crt1 as String
dim punto as integer
dim chiocciola as integer
dim contatore as integer
punto = 0
chiocciola = 0
contatore = 0
'
a = Len(sEMail)
For contatore = 1 to a
crt = Left$(Right$(sEMail,contatore),1)
crt1 = Mid$(Right$(sEMail,contatore),1,1)
'
' msgbox crt & " " & chr$(13) + chr$(10) + crt1
'
select case crt
case is = "."
if punto = 0 Then
punto = contatore
end if
case is = "@"
if chiocciola = 0 Then
chiocciola = contatore
end if
case else
end select
next contatore
'
if punto + chiocciola = 0 then
CheckMail = "Errore! Mancano sia il Dominio che la @"
Exit Function
end if
'
if punto = 0 then
CheckMail = "Errore! Manca il Dominio"
Exit Function
end if
'
if chiocciola = 0 then
CheckMail = "Errore! Manca la @"
Exit Function
end if
'
if punto > chiocciola and chiocciola <> 0 then
CheckMail = "Errore! Manca il Dominio"
Exit Function
end if
'
if punto < chiocciola and punto <> 0 then
CheckMail = "Errore! Manca la @"
Exit Function
end if
'
CheckMail = sEMail
End function
Come potrai notare manca un controllo ! Ovvero : se io scrivessi pippo.topolinogmailcom non mi da errore !
Chiedo scusa se non ho specificato ma mi riferivo a una macro!
La domanda e: se aggiungo al primo if ...or (punto > chiocciola and chiocciola = 0) comunque non va !
Risolto questo ultimo controllo sono felice !
Grazie
OpenOffice 4.1 su Ubuntu 14.04
Re: Come controllare il campo email
Ho sbagliato a scrivere....scusate!
L'errore non trovato e il seguente : se scrivo pippo.topolinogmail.com
Devo trovare il modo di gestire questo tipo di errore !!!
Grazie
L'errore non trovato e il seguente : se scrivo pippo.topolinogmail.com
Devo trovare il modo di gestire questo tipo di errore !!!
Grazie
OpenOffice 4.1 su Ubuntu 14.04
Re: Come controllare il campo email
più semplice
Codice: Seleziona tutto
Function ChkMail(sEMail)
If sEMail Like "*@*.*" Then
ChkMail = "OK"
else
ChkMail = "Non corretto"
End if
End Function
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Re: Come controllare il campo email
Grazie Patel,
provo e poi vi faccio sapere !
provo e poi vi faccio sapere !
OpenOffice 4.1 su Ubuntu 14.04
Re: Come controllare il campo email
se proprio vuoi distinguere gli errori
Codice: Seleziona tutto
function cMail(sEMail as string)
dim a As Integer, punto as integer, chiocciola as integer
a = Len(sEMail)
punto = revinstr(sEMail,".")
chiocciola = revinstr(sEMail,"@")
if Len(sEMail) > 30 then
CMail = "lunghezza > 30"
elseif punto + chiocciola = 0 then
CMail = "Errore! Mancano sia il Dominio che la @"
elseif punto = 0 Then
CMail = "Errore! Manca il Dominio"
elseif chiocciola = 0 then
CMail = "Errore! Manca la @"
else
CMail = sEMail
end if
End function
function revinstr(s as string, slash as string) as string
dim ii as integer
ii=0
do
if instr(ii+1,s,slash)=0 then exit do
ii=instr(ii+1,s,slash)
loop
revinstr = ii
end function
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta