eddy1973 ha scritto:
Buongiorno,
ho rivisto il codice sopra e con il suggerimento di inserire la funzione DLookup l'ho riscritto cosi:
Dim confronto As Variant
username.SetFocus ' casella di testo dell'username
password.SetFocus ' casella di testo della password
confronto = DLookup("username", "password", "datiaccesso", "username='" & username.Text & "'" And "password='" & password.Text & "'")
If IsNull(confronto) Then
MsgBox ("accesso")
Else
MsgBox ("accesso negato")
End If
End Sub
mi da l'errore alla funzione DLookup e non riesco a capire perché.
Hai commesso una quantità di errori che è complicato da pensare...
La prima cosa che devi imparare è quella di mettere i TAG del codice...!!!!!!
Poi questo non serve a NULLA:
username.SetFocus ' casella di testo dell'username
password.SetFocus ' casella di testo della password
Poi in Access non si usa la Proprietà Text ma la proprietà Value per le TextBox, salvo in eventi specifici..., non è questo il caso.
Poi non sai come si concatenano le Stringhe...!!!
Poi NON hai letto la GUIDA su come funziona la FUnzione perchè hai scritto una cosa impossibile da vedere anche avendo fantasia...!!!
DLookup( espr, dominio [, criteri] )
La guida dice per [espr] che è:
Un'espressione che identifica il campo di cui si vuole che venga restituito il valore.
Può essere un'espressione stringa che identifica un campo in una tabella o in una query oppure un'espressione che esegue un calcolo sui dati di tale campo.
In espr è possibile includere il nome di un campo di una tabella, un controllo di una maschera, una costante o una funzione.
Se espr include una funzione, può essere predefinita o definita dall'utente, ma non può essere un altro dominio aggregato o una funzione di aggregazione SQL.
Tu hai messo 2 Parametri... dove lo hai letto...????
Usa DCOUNT che è più comoda...!
Dim lCount As Long
lCount = DCount("*", "datiaccesso", "username='" & Me!username.Value & "' And password='" & Me!password.Value & "'")
Se il valore lCount>0 l'utente esiste ed ha inserito la PWD giusta.
Personalmente avrei diviso il controllo in 2 parti per discriminare se l'errore è nell'utente o nella pwd... ma è un dettaglio.