Usare Compatta e ripristina in Access è una delle operazioni di manutenzione più importanti per i database desktop Microsoft Access. La keyword compatta e ripristina access comprende due obiettivi distinti ma collegati: ridurre lo spazio inutilizzato accumulato nel file e tentare di correggere alcuni problemi di integrità che possono comparire dopo uso intenso, arresti anomali o errori del database.
Microsoft chiarisce che la compattazione non comprime i dati come farebbe un archivio ZIP: Access crea una versione più ordinata del file eliminando spazio inutilizzato. La stessa funzione può aiutare a riparare un database danneggiato. Prima di usarla, però, bisogna fare backup, ottenere accesso esclusivo e capire se stai intervenendo sul front-end, sul back-end o su un file monolitico. Per altre guide consulta la categoria Guide Access.
Che cosa fa davvero Compatta e ripristina
Durante l’uso quotidiano un file Access cresce. Eliminare record o oggetti non riduce sempre immediatamente la dimensione del file perché rimane spazio interno che Access può riutilizzare. Anche creazione e modifica di query, maschere, report e oggetti temporanei possono contribuire alla crescita. Compact and Repair ricostruisce il database in modo più efficiente e può restituire spazio non più necessario al file system.
La funzione include anche controlli e operazioni di riparazione. Microsoft la consiglia quando il file presenta alcuni problemi di corruzione o quando Access stesso propone di ripararlo all’apertura. Non è però una garanzia assoluta di recupero e non sostituisce i backup.
Prima di iniziare: fai un backup
La regola numero uno è creare una copia di sicurezza. Anche quando l’operazione è normalmente affidabile, stai lavorando sulla struttura fisica del database. Se il file è già danneggiato, il margine di rischio aumenta.
Per un database split salva il back-end e, se stai intervenendo anche sul front-end, salva entrambi. Microsoft raccomanda una strategia di backup regolare per Access, soprattutto in ambienti con più utenti. Approfondisci in come fare backup automatici di un database Access quando il relativo articolo sarà disponibile nella serie.
Chiudi tutti gli utenti
Per compattare un database serve accesso esclusivo. In un ambiente multiutente assicurati che nessun altro abbia il file aperto. Verifica anche sessioni RDS disconnesse e processi MSACCESS.EXE rimasti attivi.
Non limitarti a chiedere “avete chiuso tutti?”: se il back-end è critico, controlla la presenza del file di locking e le sessioni aperte sulla condivisione. Non cancellare il lock per forzare l’esclusività mentre utenti sono collegati.
Metodo 1: compattare il database aperto
Se il database si apre e puoi lavorarci normalmente, esegui: File o Strumenti database, a seconda della visualizzazione e versione, quindi Compatta e ripristina database. Access chiude e ricrea il file durante la procedura.
Prima salva il lavoro e chiudi oggetti aperti. Se il database contiene molto spazio inutilizzato, la dimensione finale può ridursi in modo evidente.
Metodo 2: compattare un database non aperto
Microsoft documenta anche la procedura per un file che non è aperto. Avvia Access senza aprire il database, chiudi eventuale file, scegli Strumenti database > Compatta e ripristina database, quindi seleziona il database sorgente. Questo approccio è utile quando vuoi lavorare su una copia o quando il file non deve essere aperto normalmente prima della manutenzione.
Lavora su una copia se esiste sospetto di danneggiamento. Conserva l’originale finché non hai verificato il risultato.
Quando Access propone automaticamente la riparazione
Se Access rileva un file danneggiato, può chiedere se vuoi compattare e riparare. Microsoft descrive due possibili risultati: riparazione completa oppure parziale. In caso di successo completo, Access segnala che la riparazione è riuscita e raccomanda di controllare il contenuto.
In caso di riparazione parziale, Access può memorizzare informazioni sugli oggetti non riparati nella tabella di sistema MSysCompactErrors. Non ignorarla: è il punto di partenza per capire cosa manca o richiede ricostruzione.
Come controllare MSysCompactErrors
Se la tabella viene creata, esamina i record e identifica gli oggetti coinvolti. Potrebbero essere tabelle, indici o altri elementi. Confronta con backup e documentazione.
Una riparazione parziale non va portata in produzione senza verifica. Conta i record, controlla chiavi, relazioni, query, maschere, report e codice. La capacità di aprire il file non equivale a integrità completa.
Compattazione del front-end
In una corretta architettura multiutente ogni utente ha un front-end locale. Questo file contiene query, maschere, report, macro e VBA e può crescere durante l’uso. Compattarlo periodicamente può ridurre dimensione e mantenere l’applicazione ordinata.
Tuttavia, se il front-end è una copia distribuita e si danneggia, spesso è più semplice sostituirlo con il master sano invece di riparare ogni copia utente. Per questo è utile una procedura automatica di distribuzione e versione.
Compattazione del back-end
Il back-end contiene i dati e richiede più prudenza. Tutti gli utenti devono essere disconnessi e devi avere un backup verificato. Pianifica una finestra di manutenzione, soprattutto se il file è grande o critico.
Dopo la compattazione riapri il front-end e verifica tabelle collegate, lettura e scrittura. Esegui query di controllo e report di totali.
Compattare automaticamente alla chiusura
Access offre un’opzione “Compatta alla chiusura” per determinati scenari. Può essere comoda su database monoutente o front-end locali, ma va valutata con attenzione in ambienti multiutente. Una compattazione richiede accesso esclusivo e aggiunge tempo alla chiusura.
Su un back-end condiviso è spesso preferibile una manutenzione pianificata. In questo modo puoi creare backup, verificare utenti, eseguire la compattazione e controllare il risultato in una finestra nota.
Quanto spesso eseguire Compatta e ripristina
Non esiste una frequenza universale. Dipende dal tipo di utilizzo. Un database con molte importazioni temporanee, eliminazioni massive e modifiche strutturali può crescere rapidamente; un database quasi statico può richiederla raramente.
Usa indicatori: aumento dimensione senza crescita equivalente dei dati, rallentamenti, frequenti oggetti temporanei, sviluppo intenso del front-end. Per il back-end abbina la manutenzione a backup e controlli.
Compattazione e prestazioni
Microsoft indica che spazio inutilizzato e crescita del file possono contribuire a peggioramenti delle prestazioni. Dopo la compattazione oggetti e query possono aprirsi più rapidamente in alcuni casi. Non aspettarti però che Compact and Repair risolva query inefficienti, rete lenta o mancanza di indici.
Se Access è lento, misura il problema: query, record source, funzioni dominio, latenza, storage e concorrenza. La compattazione è uno strumento di manutenzione, non un ottimizzatore universale.
Compattazione e AutoNumber
In alcuni contesti gli utenti si aspettano che Compact and Repair “riordini” automaticamente tutti i valori AutoNumber. Non trattare AutoNumber come un numero progressivo senza buchi da mostrare all’utente. È una chiave tecnica e può contenere intervalli.
Se serve una numerazione documentale continua, progetta un meccanismo separato con regole adatte al processo aziendale.
Cosa fare se la compattazione fallisce
Non ripetere l’operazione indefinitamente sulla stessa copia. Conserva l’originale, prova una nuova copia di lavoro e valuta di creare un database nuovo importando gli oggetti recuperabili.
La guida come recuperare un file Access danneggiato descrive il processo di recupero più ampio.
Creare un database nuovo dopo una riparazione incompleta
Se il file resta instabile, crea un ACCDB nuovo e importa prima le tabelle. Poi ricrea relazioni e importa query, maschere, report, macro e moduli in gruppi. Compila VBA dopo ogni fase.
Questo approccio evita di continuare a trascinare strutture interne problematiche e aiuta a isolare l’oggetto difettoso.
Verificare i dati dopo la riparazione
Confronta conteggi record per tabella, somme di controllo, record recenti e valori chiave con backup o report precedenti. Controlla integrità referenziale e indici univoci.
Se il database gestisce importi, confronta totali mensili o giornalieri. Se gestisce ordini, controlla sequenze e collegamenti tra testate e righe. La verifica deve essere legata al dominio reale del database.
Compattare un database cifrato
Se il database è cifrato con password, gestisci con attenzione credenziali e accesso esclusivo. Prima fai backup e assicurati di conoscere la password. Microsoft avverte che una password di database dimenticata non può essere recuperata da Microsoft.
Dopo la manutenzione verifica che la cifratura e la richiesta password siano ancora coerenti con la policy.
Database diviso e password
Microsoft spiega che, per cifrare un database diviso, front-end e back-end devono essere trattati separatamente e le tabelle ricollegate dopo la cifratura del back-end. La manutenzione deve quindi considerare dove si trova la password e come i collegamenti vengono ristabiliti.
Compattazione con Access Runtime
Runtime è pensato per eseguire applicazioni, non per amministrare il database come ambiente di sviluppo completo. Per manutenzioni strutturali è preferibile una postazione amministrativa con Access completo. Non affidare agli utenti Runtime la gestione manuale del back-end.
32 e 64 bit
La compattazione del file non cambia la bitness del progetto. Se dopo il passaggio a 64 bit compaiono errori VBA, driver o ActiveX, non aspettarti che Compact and Repair li risolva. Sono problemi di compatibilità applicativa.
Rete stabile durante la manutenzione
Quando compatti un back-end su rete, riduci al minimo rischi di interruzione. È spesso più prudente seguire la procedura Microsoft in un ambiente stabile e con accesso esclusivo. Se la condivisione è instabile, valuta manutenzione locale su copia e sostituzione controllata, rispettando backup e chiusura degli utenti.
Perché i database si corrompono
Microsoft cita scenari nei quali un’operazione di modifica interrotta, ad esempio per perdita della connessione di rete, può segnare il file come corrotto. Anche problemi in moduli VBA possono produrre danni alla progettazione. La prevenzione include database split, rete affidabile e backup.
Leggi anche come evitare corruzione in ambienti multiutente.
Checklist prima della compattazione
1. Identifica file corretto. 2. Verifica ultimo backup. 3. Crea copia aggiuntiva. 4. Chiudi tutti gli utenti. 5. Controlla spazio disco. 6. Verifica permessi. 7. Esegui Compact and Repair. 8. Controlla eventuali messaggi. 9. Cerca MSysCompactErrors. 10. Apri oggetti principali. 11. Verifica dati. 12. Riapri agli utenti.
Checklist dopo la compattazione
Controlla dimensione, versione, tabelle, relazioni, query, maschere, report, VBA, collegamenti, import/export e prestazioni. Se il file è back-end, prova inserimento, modifica ed eliminazione tramite front-end.
Errori da evitare
Non compattare mentre utenti sono connessi. Non usare la funzione al posto del backup. Non cancellare la copia originale dopo una riparazione finché non hai verificato il risultato. Non interpretare ogni lentezza come corruzione. Non usare un file sincronizzato OneDrive come normale back-end multiutente pensando che la compattazione compensi i problemi di sincronizzazione.
Esempio di manutenzione mensile
In un piccolo gestionale puoi pianificare: avviso utenti; chiusura alle 19:00; backup del back-end; copia su archivio; Compact and Repair; verifica MSysCompactErrors; apertura con account test; report di controllo; riapertura; registrazione nel log manutenzione. Se la procedura dura pochi minuti ma è documentata, il rischio è molto inferiore rispetto a interventi improvvisati.
FAQ
Compatta e ripristina cancella i dati?
La funzione è progettata per ricostruire e riparare il database, ma qualsiasi manutenzione su un file potenzialmente danneggiato deve essere preceduta da backup. In casi di corruzione grave può esserci perdita già presente nel file.
Riduce sempre la dimensione?
Solo se esiste spazio inutilizzato da recuperare. Un database pieno di dati reali non diventerà magicamente piccolo.
Ripara ogni corruzione?
No. Microsoft prevede anche casi di riparazione parziale e usa MSysCompactErrors per segnalare alcuni oggetti non riparati.
Posso usarlo ogni giorno?
È possibile in alcuni scenari, ma la frequenza deve essere motivata. Su back-end multiutente preferisci manutenzione controllata piuttosto che automatismi inutili.
Serve accesso esclusivo?
Sì, per la compattazione del file non devono esserci altri utenti che lo usano.
Compact and Repair sostituisce SQL Server?
No. Se il problema è scalabilità, concorrenza o WAN, valuta un motore server. Access può restare front-end.
Conclusione
Come usare Compatta e ripristina database in Access si può riassumere in tre principi: backup prima, accesso esclusivo durante, verifica dopo. Lo strumento è utile per recuperare spazio e affrontare alcuni problemi di integrità, ma funziona bene all’interno di una strategia più ampia di manutenzione.
La fonte ufficiale da conservare è Microsoft Support – Compact and repair a database, insieme a Microsoft Support – backup e ripristino. Pianifica la compattazione, registra l’esito e non considerare mai l’apertura del file come unica prova di salute: controlla dati, oggetti e funzioni reali.