Newsgroup: it.comp.appl.access
Titolo: implementazione di codice per logon

Ciao attutti del NG.
ho un quesito da porvi.
Sto cercando di implementare un funzione di controllo di accesso e modifica 
dei record nel mio db utilizzando il codice sottonotato che ho trovato in un 
forum su google:
Dim USERNAME
Dim PASSWORD
Dim Q1
Dim Q2
'Sezione definizione viabili
USERNAME = InputBox( _
"richiesta username" & _
Chr(13) & Chr(13) & _
"Perfavore inserisca il suo username.")
PASSWORD = InputBox( _
"richiesta password !" & _
Chr(13) & Chr(13) & _
"Ora, per favore inserisca la Sua parola d'ordine")
Q1 = DLookup("[Username]", "Logon", "[Username] = USERNAME")
Q2 = DLookup("[Password]", "Logon", "[Password] = PASSWORD")
If USERNAME = Q1 And PASSWORD = Q2 Then
MsgBox "Congratulazioni, Lei ha accesso al database!"
Else
MsgBox "Ehi! nome utente o password non corretta!" & Chr(13) & "Nessun 
accesso per Lei!"
End If
tutto funge se nelle inpubox inserisco i dati relativi al 1° record nella 
tabella "LOGON", mentre se inserisco dati relativi ad altri recorde della 
stessa tabella non va.
qualcuno puo' aiutarmi a capire perchè ed eventualmente ad indicarmi le 
opportune modifiche?
Grazie

 Grazie
Prego,
Max

 Poi, altro consiglio, criptare la password, usando qualche algoritmo (tipo md5) trovi un esempio sul sitocomune.
aggiungo come consiglio inibire la visualizzazione delle tabelle, i 
tasti speciali di access e mettere una psw per l'accesso al BE

"Silver" <cra...@TOGLIMIhotmail.com> ha scritto nel messaggio 
news:MQj0i.39140$281....@tornado.fastwebnet.it...

Ok grazie per i consiglio.
Pero', solo al fine di capire come funziona perchè sono ancora un novellino 
ed ho voglia di imparare, ero curioso di sapere perchè la funzione che ho 
postato in particolare DLookup, non funge e mi legge solo il primo record 
della tabella interessata.
Comunque ancora grazie per i prezione consigli di cui ne faro' tesoro.
ciao 

 ciao
Ciao,
Max

 ha scritto nel messaggio 
news:2Wi0i.2412$%k.1...@twister2.libero.it...

Fermo restando quello che ti hanno già scritto.
Sbagli nella sintassi della condizioneWhere della DLookup; ma è proprio un 
errore di base (in generale) nella creazione della stringa con il valore 
letto dalla inputbox.
Così facendo:
Q1 = DLookup("[Username]", "Logon", "[Username] = USERNAME")
Stai confrontando il valore presente nel campo [Username] con il valore: 
USERNAME, non con il contenuto della variabile: USERNAME.
In parole povere access (VBA) si fa questo ragionamento:
- Nel campo [Username] ci trovo scritto USERNAME? Ovviamente no.
Il ragionamento giusto è:
- Nel campo [Username] ci trovo scritto il contenuto della variabile 
USERNAME?
e per fare questo devi "tirare fuori" dalla stringa il nome della variabile 
(che ha visibilità in VBA non in SQL) e concatenarne il valore inserito.
es.
Q1 = DLookup("[Username]", "Logon", "[Username] = " & USERNAME)
poi visto che nel campo [Username] ci sarà del testo l'istruzione diventa:
Q1 = DLookup("[Username]", "Logon", "[Username] = " & Chr$(34) & USERNAME & 
Chr$(34))
Che il VBA tradurrà in:
Q1 = DLookup("[Username]", "Logon", "[Username] = "Sergio MAZZA"")
Ti consiglio di leggerti un manuale di VB dove vengono spiegati i fondamenti 
della programmazione; o almeno come vengono concatenate le stringhe...
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio 
news:f1v4ni$5ng$1...@tdi.cu.mi.it...

Innanzi tutto ti ringrazio per avermi risposto delucidandomi, sei stato 
gentile.
Poi volevo dirti che sei forte, poichè (non poteva essere altrimenti), ora 
tutto funziona regolarmente.
Per quanto riguarda il manuale e la prossima mossa che faro.
Grazia ancora Sergio.
Ciao 

 ciao
Ciao,
Max
Ciao 

 Ciao
Ciao.
-- 
Sergio MAZZA