![]() |
![]() Sincronizza Indice |
![]() Scarica il progetto |
![]() Testo dell'articolo |
![]() Stampa l'articolo |
Ho creato un database Access che ho protetto con una password, vorrei
creare un form per poter accedere al database attraverso una password.
Come posso fare? Il problema è abbastanza semplice e sarà sviluppato per entrambe le interfacce dati ADO e DAO. Per una spiegazione più approfondita sulle interfacce dati vedi la richiesta per Effettuare una connessione ad un database attraverso ADO.
Esso si compone di una Label descrittiva, una casella di testo
di nome txtPassword con la proprietà Il funzionamento è molto semplice: il nostro database è
protetto da una password ed è possibile leggerne i dati soltanto
immettendo la password corretta nella casella di testo e premendo il pulsante
Apri. Prima di vedere il codice è necessario aggiungere
un riferimento a Microsoft ActiveX Data Objects 2.x Library tramite
la voce Riferimenti
Alla riga 4 viene dichiarata la variabile Conn di tipo Connection,
che sarà utilizzata per stabilire una connessione con il database.
Alla riga 5 viene dichiarata la variabile RS di tipo Recordset
che servirà per estrarre i dati da una tabella del database. Alla riga 8 viene aggiunta una istruzione di gestione degli errori. In caso di un errore sarà mostrata una finestra di avviso con il messaggio di errore. Questa istruzione è necessaria perché in caso di password errata sarà generato un errore da intercettare.
Alla riga 9 viene scelto il tipo di provider da utilizzare per aprire la connessione al database; l'utilizzo del provider OLEDB migliora la velocità di accesso al database. Il provider scelto è quello Jet per accedere ai database di tipo Access 97 e 2000.
Alla riga 10 impostiamo la password per il database da aprire mediante la proprietà Jet OLEDB:Database Password. Assegniamo ad essa il valore della casella di testo txtPassword. Impostati tali dati sarà possibile aprire la connessione al database "libri.mdb" ed in seguito aprire la tabella LIBRI. Se la password che ha fornito l'utente è corretta il Recordset RS sarà aperto; in caso contrario sarà generato un errore che sarà gestito dalla funzione Err_Handler.
Aperta la tabella sarà elencato il suo contenuto ed inseriti i dati nella ListBox lstLibri. In seguito saranno chiuse e deallocati Recordset e Connessione. Fatto questo alla riga 22 terminerà la Sub.
In caso di un errore sarà mostrata una finestra di messaggio con l'errore generato e saranno deallocati Recordset e Connessione.
Eseguiamo il programma e proviamo ad inserire una password errata. Sarà
mostato un messaggio di errore esplicativo.
Poiché abbiamo impostato la proprietà PasswordChar la password non sarà leggibile ma appariranno degli asterischi al posto delle singole lettere. Viene affrontato lo stesso problema utilizzando DAO invece di ADO. È
pertanto necessario specificare un riferimento
Alla riga 2 viene dichiarata una variabile di tipo Database di
nome DBProtetto, mentre alla riga 3 viene dichiarata una variabile
di nome RS di tipo Recordset.
Alla riga 6 viene aperto il Recordset.
Il resto del codice è identico al precedente. Sarà riempita la ListBox lstLibri con i dati estratti dalla tabella LIBRI; in seguito vengono chiusi e deallocati Recordset e Database. Alle righe 18-20 segue la funzione di gestione degli errori obbligatoria
per rintracciare l'errore generato in caso di password errata. |
DAO sta diventando sempre più raro lasciando il posto al suo "avversario"
ADO più standard ed in grado di supportare quasi ogni tipo di database. Fibia
FBI
|
![]() |