Newsgroup: it.comp.appl.access
Titolo: modifiche maschera login

 
	ciao,
una volta scaricato il file maschera login mi sono chiesto come posso fargli
leggere da una tabella se l'utente e la pw è corretta?
è poi possibile dirgli di salvare il valore di un ipotetico id_utente
memoria o in una maschera esterna?
Grazie
Tz
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

  ciao,
una volta scaricato il file maschera login mi sono chiesto come posso
fargli
leggere da una tabella se l'utente e la pw è corretta?
Hai 3 almeno modi:
1)Apri un Recordset filtrandolo per USER e recuperi i dati del
confronto, gestisci EOF nel caso sia Errato o inesistente.
2)Apri un Recordset sulla Tabella Users e con FindFirst Metodo DAO
Recuperi i dati per il confronto, e gestisci il NoMatch nel caso non ci
sia.
3)Funzioni di aggregazione sui Domini, nel tuo caso DlookUp(vedi l'help
in linea che è molto dettagliato).
è poi possibile dirgli di salvare il valore di un ipotetico id_utente
memoria o in una maschera esterna?
Se lo vuoi salvare in Memoria ti basta dichiarare a livello Globale,
quindi in un
Modulo la variabile come Public.
Come maschera esterna invece saresti obbligato a tenerla aperta.......
@Alex
Grazie 
Tz

tiziano ha scritto:

Crea una tabella contenente i campi idutente;nomeutente;password
Crea una maschera senza origine dati contenente:
un menu a tendina contenente i 3 campi sopra citati, di cui il primo e
l'ultimo nascosto (largh.colonne:0;4;0), ed un campo casella di testo
(maschera di input: password).
Crea un pulsante log-in con il seguente codice:
If Me!Password.Value = Me!login.Column(2) Then
    'fai quello che vuoi
else
    msgbox "Nome utente o password errati"
    exit sub
end if
dove me.password è la casella di testo con gli *******
e me.login.column(2) è il menu a tendina 3°colonna nascosta

Questo metodo ha un problema, da per scontato che le Tabelle siano nel
FE
o che anche se nel BE siano LINKATE.....!
Il Login si usa spesso proprio per protezione e lasciare le tabelle
Linkate
sempre non è un bell'esempio di protezione.
Personalmente preferisco scollegare le Linked alla chiusura, e solo se
il Login
va a buon fine provvedo a LINKARLE, per questo utilizzo un recordset
aperto
direttamente sul DB dove risiedono gli Users.
La mia è solo una considerazione personale in aggiunta a quanto hai
detto.
@Alex


ciao,
scusate se vi rispondo solo ora ma sono arrivato al punto di non
ritorno...ovvero:
il mio db è quasi alla fine è un unico file non diviso in BE e FE, quindi le
vostre informazioni sono importanti per me che non ci capisco molto...
dunque come devo muovermi ora?
dividendo il db cosa devo fare?
nel fe non collego in automatico le tabelle ma potrei collegarle solo se uno
chiama quella maschera, giusto? se sì cosa devo fare?
per quanto riguarda la sicurezza cosa sarebbe meglio? in vista della
divisione del db?
ciao


Prima di tutto la divisione del DB è molto importante, ti permette di
aggiornare
solo le interfacce utente e di non toccare i dati.
Le tabelle vanno collegate all'apertura del FE, e personalmente lo
faccio solo
dopo aver effettuato il Login.
Per la sicurezza dipende molto a che pubblilco è indirizzato il tuo
lavoro
ed in cosa consiste.
Sul SC trovi anche le routine per ricollegare in automatico le tabelle.
Ciao
@Alex



va bene... ma caricheresti tutte o solo quelle che appartengono al gruppo
definito nell'utenza?
mi spiego: l'utente fabio ha accesso a tutto e l'utente luigi a 10 tabelle,
ma può modificare (aggiungere) solo a 5 e vederne 5 (in sola lettura) quindi
caricherà solo quelle "alleggerendo" la richiesta al Be...
l'utenza come va gestita attraverso mdw o attraverso delle tabelle in cui
controllare il valore?
credo sia meglio attraverso delle tabelle...ma la mia opinione è
opinabile...
Grazie


Da come descrivi la cosa non è chiaro come intendi una gestione
utenti.
Premesso che Linkare 10 Tabelle o Linkarne 50 non cambia nulla, le
richieste
sono tali solo se viene aperto un Recordset(che sia da Form o da
tabella).
Solitamente la gestione utenti deve essere fatta a livello
d'interfaccia
e non di base dati(non è proprio così ma accetta questa
semplificazione).
Quindi le tabelle andranno linkate tutte, sarà poi l'interfaccia a
gestire
la modalità di accesso in R/W a seconda del Login.
Personalmente non uso la gestione MDW per motivi personali già
ampiamente
esposti nel NG.
Io utilizzo una gestione utenti interna che ti semplifico per facilità
con USER-PASSWORD-LEVEL.
In base al Level concedo i privilegi necessari.
Nel mio caso la struttura è molto più complessa, ma ormai sono anni
che
la uso quindi l'ho standardizzata.
Ciao
@Alex


Scusa la mia erronea attribuzione intendevo le maschere, quindi hai
costruito una tabella con questi 3 campi e a seconda del livello che un
utente ha può accedere alla lettura o modifica dei dati presenti sulla
maschera.
da quanto letto nei vari post e in risposta a quanto hai detto prima ad un
altra persona che ha risposto alla mia domanda di aiuto, mi chiedo se il
linkaggio delle maschere le tieni attive solo nel momento in cui vengono
aperte le singole maschere e alla loro chiusura togli il link, credo per non
continuare ad avere un collegamento sempre attivo...
in questo caso tu crei una stringa di connessione alla tabella?
scusa il mio gergo troppo spicciolo o poco chiaro ma non mi è semplice fare
domande su cose che conosco poco.
tz


Scusa la mia erronea attribuzione intendevo le maschere, quindi hai
costruito una tabella con questi 3 campi e a seconda del livello che un
utente ha può accedere alla lettura o modifica dei dati presenti sulla
maschera.
[Risposta]
Diciamo di si in linea di massima su evento Open della Form
leggo i privilegi e gestisco le proprietà AllowEdits, AllowAdditions
ed AllowDeletions.
da quanto letto nei vari post e in risposta a quanto hai detto prima ad
un
altra persona che ha risposto alla mia domanda di aiuto, mi chiedo se
il
linkaggio delle maschere le tieni attive solo nel momento in cui
vengono
aperte le singole maschere e alla loro chiusura togli il link, credo
per non
continuare ad avere un collegamento sempre attivo...
[Risposta]
No una volta Loggato l'utente le lascio linkate tutte, le rimuovo alla
chiusura.
in questo caso tu crei una stringa di connessione alla tabella?
[Risposta]
Ovviamente per Linkarle serve la Stringa di connessione.
Prova a dare un'occhiata alla proprietà Connect dell'Oggetto
Tabledef
scusa il mio gergo troppo spicciolo o poco chiaro ma non mi è semplice
fare
domande su cose che conosco poco.
Il vocabolario appropriato arriva con il tempo.
@Alex