Salve a tutti voi, vorrei incrementare i livelli d'accesso di questo DB che per ora è solo Admin e User, mentre io vorrei dare anche Guest o Other.
Ho provato a modificare la macro aggiungendo i livelli (che ho già modificati della tabella dove ci sono admin e user) ma ricevo una sfliza di errori else e end if……Che si debba utilizzare altre funzioni? Cosi come è impostata la macro va bene solo per due livelli d'accesso??
Grazie in anticipo per chi risponderà.
cassiopea
Option Compare Database
Private Sub Comando1_Click()
Dim UserLevel As Integer
Dim pwd As String
Dim TemPass As String
Dim ID As Integer
If IsNull(Me.txtLoginID) Then
MsgBox ("Inserire Login"), vbInformation, "Richiesto Login"
Me.txtLoginID.SetFocus
ElseIf IsNull(Me.txtPassword) Then
MsgBox ("Inserire Password"), vbInformation, "Richiesta Password"
Me.txtPassword.SetFocus
Else
If estrai_campo_numerico("select count(*) from tablogin where login='" & txtLoginID.Value & "'") Then
'esiste l'utente
pwd = estrai_campo_stringa("select password from tablogin where login='" & txtLoginID.Value & "'")
If pwd = "Password" Then
'sono entrato con la password momentanea
If pwd <> txtPassword.Value Then
MsgBox "Attenzione la Password momentanea non coincide"
txtPassword.Value = ""
txtPassword.SetFocus
Exit Sub
End If
id_utente_loggato = estrai_campo_numerico("select loginid from tablogin where login='" & txtLoginID.Value & "' and password='" & txtPassword.Value & "'")
MsgBox ("Per favore cambiare Password"), vbInformation, "Nuova Password"
DoCmd.OpenForm "CambiaPassword", , , "[LoginID] = " & ID
DoCmd.Close acForm, "LoginPassword"
Else
If txtPassword.Value = pwd Then
'password corretta
UserLevel = estrai_campo_stringa("select sicurezza from tablogin where login='" & txtLoginID.Value & "' and password='" & txtPassword.Value & "'")
id_utente_loggato = estrai_campo_numerico("select loginid from tablogin where login='" & txtLoginID.Value & "' and password='" & txtPassword.Value & "'")
If UserLevel = 1 Then
DoCmd.OpenForm "InserimentoDati"
DoCmd.Close acForm, "LoginPassword"
Else
DoCmd.OpenForm "Report"
DoCmd.Close acForm, "LoginPassword"
End If
'QUI VORREI AGGIUNGERE QUESTE LIVELLO D'ACCESSO E MAGARI ANCHE IL NUMERO 3
'If
'UserLevel = 2 Then
'DoCmd.OpenForm "InserimentoDati"
'DoCmd.Close acForm, "LoginPassword"
Else
MsgBox "Attenzione Password Errata"
txtPassword.Value = ""
txtPassword.SetFocus
Exit Sub
End If
End If
Else
MsgBox "Attenzione utente non codificato"
txtLoginID.Value = ""
txtLoginID.SetFocus
Exit Sub
End If
End If
End Sub