Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

una semplice maschera di login, non so dove sia l'errore

51 views
Skip to first unread message

Lomba

unread,
Jul 18, 2017, 6:20:55 PM7/18/17
to
ciao a tutti. mi chiedevo se mi potevate aiutare. io devo creare una maschera di login semplicissima. ho visto la faq "semplice maschera di login" (sezione general) sul sito comune ma access 2016 non mi fa aprire il file... allora ho provato a cercare qui ma c'è qualcosa che mi sfugge... vediamo:
ho creato una tabella UTENTI con i seguenti campi:
Id_utente
nome_utente
acronimo

poi ho creato una maschera con due controlli: una casella combinata (di seguito Casellacombinata2) che mostra nome_utente
una casella di testo (chiamata di seguito "testo5") che serve per scrivere acronimo (che è poi la password...)
ora se sul click di un pulsante (comando4) io metto la seguente istruzione non va... io vorrei confrontare se acronimo (associato a nome utente della casella combinata) corrisponde a quanto scritto nel Testo5 (che faccio scrivere all'utente) ...
ve la copio...

Private Sub Comando4_Click()
If IsNull(Me.Testo5) Then
MsgBox "non hai compilato la password", , "Inserimento necessario"
Me.Testo5.SetFocus

Dim varPWD

varPWD = DLookup("[acronimo]", "Utenti", "[nome_utente]=" & Chr(34) & Me.CasellaCombinata2.Column(1) & Chr(34))
'la colonna 1 mostra i nomi, la colonna 0 è l'id...
MsgBox varPWD 'NON ME LA MOSTRA......

If Me.Testo5 = varPWD Then 'DoCmd.OpenForm "inizio"
ElseIf IsNull(varPWD) Then
MsgBox "Nome Utente o Password Errato o mancante !", vbCritical, "Login - Errore"
Me.Testo5.SetFocus
Else
Exit Sub
End If
End If

end sub

BOh, c'è qualcosa che non quadra...
il passo successivo sarebbe poi implementare la gestione dei tempi di accesso e relativa permanenza nel database, dopo inserimento della password (Acronimo), ma se mi apre la maschera INIZIO, poi vedo come fare... per il momento non capisco cosa ci sia che non va
uso access 2016 ultimissima versione
un grazie a tutti coloro che vorranno darmi dritte!!
Luca.

@Alex

unread,
Jul 19, 2017, 5:18:07 AM7/19/17
to
Non vedo anomalie particolari nel recupero della PWD... salvo che non la trova..., e questo è l'unico motivo per cui non la Mostra...!

Suggerisco una verifica diretta con una Query da QBE dopo aver fatto un Debug.print della stringa WHERE:

Debug.print "[nome_utente]=" & Chr(34) & Me.CasellaCombinata2.Column(1) & Chr(34)

Copi quanto emerge nella Finestra Immediata(CTRL+G) e lo incolli nel predicato SQL in QBE:
SELECT * FROM Utenti WHERE [----> INCOLLA <----]

Verifica come mai non trova nulla.

Ora ti pongo un quesito...
Invece di farti sparare in chiaro la PWD al Client... non conviene che crei un CRITERIO DOPPIO User AND Pwd sulla DlookUp...?

Questione di sicurezza secondo me...

@Alex

Stefano

unread,
Jul 19, 2017, 5:51:58 AM7/19/17
to
Prova in questo modo, dovrebbe funzionare.

Private Sub Comando4_Click()
Dim varPWD AS String

If IsNull(Me.Testo5) Then
MsgBox "non hai compilato la password", , "Inserimento necessario"
Me.Testo5.SetFocus
endif


varPWD = DLookup("[acronimo]", "Utenti", "[nome_utente]= '" &
Me.CasellaCombinata2.Column(1) & "'"
'la colonna 1 mostra i nomi, la colonna 0 è l'id...
'MsgBox varPWD "NON ME LA MOSTRA......"

If Me.Testo5 = varPWD Then
DoCmd.OpenForm "inizio"
ElseIf IsNull(varPWD) or varPWD <> me.testo5 Then
MsgBox "Nome Utente o Password Errato o mancante !", vbCritical, "Login
- Errore"
Me.Testo5.SetFocus
End If
end sub

Io comunque, utilizzerei un sistema di criptazione e decriptazione della
tabella utenti per non lasciarla in chiaro dopo di che, metterei un
contatore di errori in modo tale che al terzo tentativo errato di
inserimento password, chiude il programma e magari ti invia un'email di
alert che qualcuno ha tentato di accedere al programma.

Ciao.
Stefano

---
Questa email è stata esaminata alla ricerca di virus da AVG.
http://www.avg.com

Lomba

unread,
Jul 19, 2017, 10:15:16 AM7/19/17
to
grazie a tutti e due!! mitici!!
per la questione del contatore sui tentativi, come si fa?
0 new messages