General

6.82 Ridurre le dimensioni dell'mdb.
  RoDAgo
 Premessa a cura di warp:
"Lavorando sul Codice VBA di un qualunque modulo, le dimensioni di quest'ultimo aumentano ingiustificatamente.
Avete lavorato mezza giornata alla preparazione di un programma, dopo molti ripensamenti e correzioni avete scritto 300 righe di codice; uscite dal programma e con sorpresa le dimensioni del .mdb anzichè essere aumentate di 3 KB (per es.) si sono gonfiate di 200!
La compattazione del .mdb (che rigenera tabelle e indici, ma si limita a reimportare gli oggetti del progetto VBA) non risolve il problema.
Cos'è realmente questa sporcizia e che conseguenze può avere alla lunga?
Difficile rispondere analiticamente, ma la cosa migliore è trovare dei metodi per eliminarla: la reimportazione degli oggetti in un db vuoto, e il /Decompile (Ndr: l'uso dell'opzione /Decompile può creare problemi ai moduli di classe, in parole povere li trasforma in moduli standard) sono due buone soluzioni, ma ne esiste un'altra più comoda, anche se un pochino macchinosa da spiegare:
 1) Terminato il lavoro sul modulo di codice VBA, selezionare tutto e Copiare negli Appunti.
 2) Tornare in modalità Design di maschera o Report e impostare a NO la proprietà "Possiede Modulo".
 3) Confermare la rimozione del modulo VBA e salvare.
 4) Rientrare nel modulo di codice (che sarà vuoto) e Incollare il codice precedentemente Copiato nel ClipBoard.
 5) Salvare, uscire e compattare il .MDB.
La strategia funziona bene; con una piccola variante fa il suo dovere anche con i moduli di codice globali: si crea un nuovo modulo generale, s'incolla il codice, quindi si rimuove il vecchio Modulo." (warp)

Questi 5 passi elencati da warp, vengono eseguiti dal PuliBatch con un unico neo, se tra i moduli (siano essi standard o di classe) dell'mdb da processare, ve ne è qualcuno nascosto, la procedura lo rende visibile questo perchè ammetto di non saper modificare via codice l'attributo nascosto dei moduli, se chi legge è a conoscenza di un comando per la soluzione mi contatti via e-mail.

Nota di Alessandro Baraldi
Il database allegato a questa FAQ non funziona con versioni di Access successive ad Access 97 per problemi di riferimenti DAO, da quanto ho capito, ma non sono riuscito a trovare la soluzione per farlo andare anche con versioni di Access successive ad Access 97.
Sarebbe una gran cosa trovare l'arcano del problema...!!

Download:
 
  PuliBatch.zip (38Kb) MSAccess97 database


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.