Newsgroup: it.comp.lang.visual-basic
Titolo: Aiuto ADO e PASSWORD.





Ho creado un database in ACCESS 2000 e l' ho 
protetto con una password.


Come faccio ad accedere al database con una 
connessione ADO?


 


ho provato con:


 


Public connessione As New 
ADODB.Connection


cnonessione.CursorLocation = 
adUseClient
connessione.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" 
& gPercorsoDatabase & "\nomedatabase.mdb;Persist Security 
Info=False","password"


 


Ma si verifica il seguente errore:


Il file informazioni sul gruppo di lavoro e' 
mancante o aperto in modo esclusivo da un altro utente.


 


Come devo fare?


 


        
                
                
                
            Grazie


 







Credo che tu debba scrivere:


connessione.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data 
Source=" & gPercorsoDatabase & "\nomedatabase.mdb;Persist 
Security Info=False;password"


 


O qualcosa di simile non ricordo esattamente.


 


Prova.


 


Eventualmente puoi farti dare la sintassi corretta con la 
creazione guidata di una form che si collega a quel database.


 


 


Ciao.



>                                                                    Grazie
ADO è fortemente orientato all'accesso autenticato dalla coppia
userid/password, quindi
il tuo DB deve rispecchiare queste specifiche. Per farlo devi creare un DSN
basato sul
tuo .mdb, e devi inoltre collegarlo ad un database di sistema (.mdw).
Di solito uso questo metodo, che tra l'altro mi preserva la possibilità di
passare da
Access modalità singolo user a multiuser in un attimo. Fai attenzione, se
sbagli qualcosa
potresti anche rischiare di non riuscire più ad avviare Access.
1. Fai una copia di backup del file [system.mdw] che si trova nella
directory di sistema
di Windoze (c'è sempre sia in mod single che multiuser)
2. Avvia Access 2000 come al solito
4. Apri il tuo DB
5. Seleziona [Strumenti]/[Protezione]/[Account utenti e gruppi]
6. Creati gli utenti e i gruppi che ti servono
7. Uscito da Access fai una copia del nuovo [system.mdw] appena generato,
che ora
comprende anche le specifiche di sicurezza. Mettilo in una directory diversa
da quella
di sistema (di solito io lo metto nella stessa cartella dell' .mdb)
8. Ripristina il [system.mdw] originale
Ora tocca ai driver ODBC:
9. Da [Pannello di controllo]/[Origini dati 32bit (ODBC)] crea una nuova
origine dati
(ti consiglio un origine di tipo SISTEMA, in modo che sia accessibile sempre
e
comunque.)
10. La tua origine dati dovrà essere basata su "Microsoft Access Driver
(*.mdb)". Nella
finestra di configurazione del driver seleziona come Database la locazione
fisica del
tuo .mdb, mentre come "Database di sistema" seleziona il tuo .mdw.
E infine tocca ad ADO:
11. La stringa di connessione è molto più semplificata, dato che ci pensa
ODBC a fornire
tutte le informazioni necessarie. Per l'interfaccia ci devi pensare tu:
tocca a te chiedere
correttamente nome utente e password. Ecco l'ultimo passo:
connessione.Open "DSN=<sorgente dati>;UID=<nome utente>;PWD=<password>"
Ricordati di agganciare tutti gli errori tramite ON ERROR GOTO e...fatto!
Fammi sapere come è andata, ok?





Non fare casino col file di protezione mdw, lascia 
pure il database con la sola password e metti nel tuo progetto un Data 
Environment, aggiungi una connessione, segui la autocomposizione e non puoi 
sbagliare.


 


All'avvio del programma metti


 


DataEnvironment.Connessione.open


 


Fine della storia.


 


Se non si apre con questo semplice metodo controlla 
che il database non abbia altre protezioni (se l'hai fatto tu...) e prova a 
chiudere access prima di fare il debug del progetto.


 


Ciao.