Io farei prima i controlli poi l'inserimento tipo:
codice:
nome=request.form("nome")
cognome=request.form("cognome")
login=request.form("login")
password=request.form("password")
email=request.form("email")
'i dati email password e login devo essere presenti
if email <> "" and password <> "" and Login <> "" Then
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/utenti.mdb")
sql= "SELECT login, email FROM utenti where email ='"&email&"'"
Set rs = conn.Execute(SQL)
if not rs.bof then
e_mail = Rs("email")
user = Rs("login")
else
'se non presente la mail inserisco i dati ho utilizzato insert perché + performante.
'attenzione la parola password e parola riservata pertanto va racchiusa tra le parentesi []
'se dovesse dare problemi cambia il nome nella tabella (tipo psw)
SQL = "INSERT INTO utenti (nome,cognome,login,password,email)VALUES('"&nome&"','"&cognome&"','"&login&"','["&password&"]','"&email&"')"
Conn.Execute(SQL)
End if
'verifico se mail o user sono nulli (non valorizzati) in tal caso faccio il login
if e_mail = "" or user = "" Then
sqll= "SELECT * FROM utenti where login ='"&login&"' and [password]='"&password&"'"
Set rec = conn.Execute(SQLL)
if rec.eof Then
Errore = "Login o password errati"
else
Errore = rec("id")
End if
else
if e_mail <> "" Then Errore = "Email già presente"
if user <> "" Then Errore = "Login già presente"
End if
else
'mancano i dati essenziali
Errore = "Inserire email, login, password"
End if
conn.close()
set conn = nothing
Response.write Errore
Non l'ho verificato ma dovrebbe andare, cosi (credo) che sia il codice + "pulito" che ci possa essere.