Newsgroup: it.comp.appl.access
Titolo: creare utenti e password

Non sono molto bravo in access pero' il mio programmino l'ho fatto.
Ora voglio eseguire una macro e vorrei lasciar traccia nella tabella 
principale di chi esegue la macro. Allora ho creato una semplice tabella di 
appoggio che ho chiamato utenti. Nella tabella vi sono solo due campi : user 
e password. Quindi una cosa del genere.
Mario - jam
Francesco - Pink
Alessio - Water
Flavio - stone
ecc ecc.
Ad un certo punto, tramite un certo form Assegnazione vorrei che i vari 
Francesco, Mario, ecc mettessero il loro nome all'interno di specifici 
record. Ad esempio il record tratta di mobili da restaurare. Mario decide di 
prendere la sedia. Con un menu' a tendina collegato alla tabella utenti 
mario seleziona il suo nome e aggiorna. E qui l'ho trovato  un po' debole il 
programma. Chiunque tra Mario, francesco, alessio e flavio potrebbe inserire 
il nome dell'altro. Dunque per inrobustire la procedura pensavo di inserire 
una password per rendere piu' sicura l'assegnazione. Ora dico la verita', di 
VBA ci prendo poco, ho scopiazzato qua e la e ho scritto:
Dim rm As Object
    Set rm = utenti (la tabella utenti. credo si indichi cosi', 
semplicemente scrivendo il nome)
    rm.FindFirst "[user] = '" & Me![CasellaCombinata6] & "'" (la casella 
collegata agli user della tabella utenti)
    If Not rm.EOF Then Me.Bookmark = rm.Bookmark
    If Me.Testo2 = rm.password Then (la casella di testo dove dovrebbero 
inserire le rispettive password)
   DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70 (non so bene 
che significa ma aggiorna la finestra, togliendo le voci che sono state 
assegnate)
    End If
Il tutto pero' non va. Mi appare necessario oggetto e a dire il vero non so 
neanche di che parla. Sarebbe l'ultima cosetta. Poi devo fare i report e il 
programma e' finito.
Qualcuni mi aiuterebbe?


velocissimo cut and paste ... prova a studiarla ...
If IsNull(Me.txtUser) Or Me.txtUser = "" Then
MsgBox "You must enter User Name.", vbOKOnly, "Required Data"
Me.txtUser.SetFocus
Exit Sub
End If
If IsNull(Me.txtPassword) Or Me.txtPassword = "" Then
MsgBox "You must enter Password.", vbOKOnly, "Required Data"
Me.txtPassword.SetFocus
Exit Sub
End If
If Me.txtPassword.Value = DLookup("Password", "tblUsers", "[UserID]="
& Me.txtUser.Value) Then
UserID = Me.txtUser.Value
DoCmd.Close acForm, "frmYourForm", acSaveNo
DoCmd.OpenForm "frmFormYouWantToOpen"
Else
MsgBox "Invalid Password. Please Try Again", vbOKOnly, "Invalid
Entry!"
Me.txtPassword.SetFocus
End If
intLogonAttempts = intLogonAttempts + 1
If intLogonAttempts > 2 Then
MsgBox "You do not have access to this database.", vbCritical,
"Restricted Access!"
Application.Quit
End If

 semplicemente scrivendo il nome)
No, devi aprire il recordset:
Set rm=currentdb.Openrecordset("Utenti",dbopensnapshot)
Comunque come sistema e' molto debole e facilmente aggirabile, non
necessarimente in cattiva fede.
Ti conviene creare le utenze con relative password nel gruppo di
lavoro (strumenti-protezione-account utenti e gruppi) e impostare una
password per l'amministratore; in questo modo, chi apre il database
deve inserire nome utente e password, e il nome utente lo puoi sempre
recuperare con la funzione CurrentUser(), senza che l'utente debba
selezionare nulla, senza preoccuparti delle password e con un buon
livello di sicurezza.
cia'
Max

 ha scritto nel messaggio 
news:1184061705.2...@w3g2000hsg.googlegroups.com...

ok , ci provo grazie 


Molto gentile, ora la provo. Per la sicurezza.... Ci arrivo a malepena  e a 
stento io a queste cose figuriamoci le persone che la useranno. E poi e' 
piu' per evitare cambiamenti involontari del database che manomissioni 
volontarie. Si presuppone la buona fede. Magari irrobustisco il sistema 
attivando come contromisura la gambizzazione fisica. Faccio prima ed e' 
comunque efficace :-)
 Grazie comunque dell'avvertimento.