COME FARE
DATABASE
Codice segreto
Come nascondere del codice Visual Basic all’interno
di un file di Access per evitare guai ▲ Quando si lavora
in ambienti di rete è utile avere la visualizzazione sempre
aggiornata dei dati di una tabella. Ecco come ottenerla
S
e avete appena terminato lo sviluppo di una procedura in Access e
non desiderate che gli utilizzatori
del database mettano gli occhi sul
codice tanto sudato per portare a termine la
procedura, Access vi consente un minimo
di protezione. Nonostante si sia sempre sostenuto che solo i compilatori come Visual
C++ o il Visual Basic siano in grado di nascondere il codice sorgente, anche Access
ha un compilatore. Benché non si tratti di
un compilatore nel senso stretto del termine, può risolvere brillantemente il problema della protezione del codice sorgente
In Access è possibile salvare
un database in formato MDE creando
una copia che consente di nascondere
il codice Visual Basic
contenuto all’interno del database. Il salvataggio (si noti che non si utilizza il termine
compilazione) del database di Access come
MDE comporta la compilazione di tutti i
moduli, la rimozione di tutto il codice sorgente modificabile e la compattazione del
database di destinazione. Il codice Visual
Basic continuerà a essere eseguito, ma non
potrà essere visualizzato o modificato e la
dimensione del database di Access si ridurrà
a seguito della rimozione del codice. Inol328
PC WORLD ITALIA
tre, verrà ottimizzato l’utilizzo della memoria con un conseguente incremento delle
prestazioni. L’operazione però non è priva
di controindicazioni: dopo avere salvato il
database di Access come file MDE non sarà
più possibile visualizzare, modificare o creare maschere, report o moduli in VISUALIZZAZIONE STRUTTURA.
Non sarà possibile aggiungere, eliminare o modificare dei riferimenti ai database
o alle librerie di oggetti, cambiare il codice
utilizzando le proprietà o i metodi dei modelli di oggetti Microsoft Access o VBA.
Inoltre, non saranno possibili l’importazione o esportazione di
maschere, report o moduli. È tuttavia possibile importare o esportare
tabelle, query, pagine di
accesso ai dati e macro
da o verso database non
MDE. Qualsiasi tabella, query, pagina di accesso ai dati o macro
presente in un file
MDE può essere importata in un altro database di Access, ma
nessuna maschera, report o modulo, può essere importato in un altro database di Access.
Come se le indicazioni sopra esposte non
fossero sufficienti, segnaliamo che occorre
sempre salvare una copia del database di
Access originale. Per modificare la struttura
di maschere, report o moduli di un database di Access salvato come MDE è necessario aprire il database originale, modificarlo,
quindi salvarlo nuovamente come MDE.
Operativamente la procedura di creazione di un file MDE è semplice. Innanzitutto, occorre chiudere il database che si intende convertire. Se si sta lavorando in un ambiente multiutente, occorre anche assicurarsi che tutti gli utenti abbiano chiuso il
NOVEMBRE 2001
database di Access. A questo punto si deve
accedere al menu STRUMENTI/UTILITÀ DATABASE, e scegliere il comando CREA COPIA
DI FILE MDE. Nella finestra di dialogo successiva si deve specificare il database di Access che si desidera salvare come file MDE,
quindi scegliere il pulsante CREA MDE.
Nella finestra di dialogo SALVA MDE CON
NOME specificare il nome e il percorso che
si desidera assegnare al database di Access.
A questo punto disporrete di un “file eseguibile” di Access, completamente protetto
per quanto riguarda il codice.
UN PO’ DI MANUTENZIONE
Se si è soliti creare applicazioni con due database, uno per le tabelle e i dati e uno contenente le maschere, le query e i report, si
può efficacemente riparare e compattare il
database con i dati all’avvio del programma
client. Basta ricorrere ai metodi COMPACTDATABASE e REPAIRDATABASE, disponibili
nel DB Engine di DAO. Infatti, succede a
volte che questi file si guastino o diventino
troppo ingombranti.
Può essere una buona soluzione implementare nella procedura di avvio una chiamata al metodo COMPACTDATABASE oppure al metodo REPAIRDATABASE, qualora il
programma generi un errore 3049 (che sta
a significare database non valido), come la
semplice istruzione che segue:
DBEngine.RepairDatabase
“c:\dbase.mdb”
DATI SEMPRE AGGIORNATI
Se si usa un database Access condiviso in rete è possibile che contemporaneamente altri
utenti stiano modificando gli stessi dati di
un foglio dati o di una maschera. I dati visualizzati vengono aggiornati a intervalli
regolari. Per visualizzare immediatamente i
dati più recenti, si deve aprire una tabella,
una query o una maschera in VISUALIZZAZIONE FOGLIO DATI, oppure una maschera
in VISUALIZZAZIONE MASCHERA e scegliere
poi il comando RECORD/AGGIORNA.
Con questo comando è possibile aggiornare solo i dati già esistenti; non si può
usarlo per riordinare i record, visualizzare
nuovi record oppure rimuovere i record eliminati e quelli che non soddisfano più i criteri specificati. Per effettuare queste azioni, è
necessario eseguire una nuova query sui record premendo la combinazione di tasti MAIUSC+F9. - Claudio Panerai