Come controllare il campo email

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
innav
Messaggi: 4
Iscritto il: lunedì 8 dicembre 2014, 10:31

Come controllare il campo email

Messaggio da innav »

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
OpenOffice 4.1 su Ubuntu 14.04
Avatar utente
Gumo
Messaggi: 1227
Iscritto il: lunedì 15 marzo 2010, 13:43
Località: IT

Re: Come controllare il campo email

Messaggio da Gumo »

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
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 !
innav
Messaggi: 4
Iscritto il: lunedì 8 dicembre 2014, 10:31

Re: Come controllare il campo email

Messaggio da innav »

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
OpenOffice 4.1 su Ubuntu 14.04
innav
Messaggi: 4
Iscritto il: lunedì 8 dicembre 2014, 10:31

Re: Come controllare il campo email

Messaggio da innav »

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
OpenOffice 4.1 su Ubuntu 14.04
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Come controllare il campo email

Messaggio da patel »

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
innav
Messaggi: 4
Iscritto il: lunedì 8 dicembre 2014, 10:31

Re: Come controllare il campo email

Messaggio da innav »

Grazie Patel,
provo e poi vi faccio sapere !
OpenOffice 4.1 su Ubuntu 14.04
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Come controllare il campo email

Messaggio da patel »

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
Rispondi