È possibile mantenere organizzati e gestibili i database di Microsoft Access archiviando periodicamente i record obsoleti o inattivi. È possibile archiviare tutte le tabelle di un database, tabelle specifiche o solo record specifici, ad esempio record precedenti a una data specifica. Questo argomento spiega come usare tre diverse opzioni per archiviare i dati nel database di Access.
Contenuto dell'articolo
Quando è consigliabile valutare l'archiviazione?
Quando un database nel computer contiene dati che non si prevede di usare più, ma si vuole tenere questi dati a portata di mano nel caso in cui siano necessari in un certo momento o per rispettare criteri di conservazione dei dati, l'archiviazione è un buon modo per conservare tali dati. L'archiviazione viene spesso usata anche per mantenere i dati in base a una condizione di data, ad esempio alla fine di un mese.
Modalità di archiviazione dei dati
La tabella seguente elenca i metodi per archiviare i dati, una descrizione del metodo, una spiegazione dell'uso di ogni metodo e altre considerazioni specifiche per il metodo.
Metodo |
Descrizione |
Da usare per |
Altre considerazioni |
Crea periodicamente una copia di archivio di una determinata tabella e la sostituisce con una nuova copia vuota della tabella. |
Tutti i record in una tabella soddisfano le condizioni usate per determinare se archiviare o meno. ESEMPIO: è disponibile una tabella in cui vengono memorizzati gli estremi della temperatura giornaliera. Ogni anno si archivia la tabella e si inizia da zero con una vuota. |
|
|
Creare periodicamente una copia di archivio del database back-end e quindi sostituire il database back-end con un nuovo database vuoto. Richiede un database diviso, ovvero un file di database back-end contenente tutte le tabelle e un file di database front-end contenente tutti gli altri oggetti di database. |
Tutti i record nella maggior parte delle tabelle di un database soddisfano la condizione usata per determinare se archiviare o meno. ESEMPIO: Il database è costituito da più tabelle con diversi tipi di dati meteorologici. Ogni anno si archiviano tutte le tabelle. |
|
|
Spostare periodicamente i record in una tabella di archiviazione |
Esegue periodicamente una query che seleziona i record per l'archiviazione e aggiunge i dati a una tabella di archiviazione, quindi si esegue una query per selezionare gli stessi record (dalla tabella originale) ed eliminarli. |
Alcuni record in una tabella soddisfano la condizione usata per determinare se archiviare o meno. ESEMPIO: si vogliono archiviare le transazioni di libreria (estratte) se la data di archiviazione ha almeno un anno. |
Avviso: Se è necessario usare parametri nelle query, è consigliabile creare una maschera per gestire i parametri. In caso contrario, si rischia la perdita di dati. |
Uso dell'integrità referenziale
Se i record da archiviare sono correlati ai record di altre tabelle, potrebbe essere necessario aggirare la relazione. Se i record da archiviare sono record "figlio" (appartengono al lato "molti" di un relazione uno-a-molti ), probabilmente è possibile archiviarli senza problemi. Se i record da archiviare sono record "padre" (appartengono al lato "uno" di un relazione uno-a-molti ), quando vengono archiviati i record "figlio" correlati possono:
-
Impedire l'eliminazione dei record "padre". Questo potrebbe causare problemi se sono già stati aggiunti i record "padre" alla tabella di archiviazione.
-Oppure-
-
Diventare "orfani", ovvero i record che appartengono a un "padre" che non esiste. Ciò potrebbe causare problemi di integrità e funzionalità dei dati nel database che usano i record "orfani".
Per tenere conto dell'integrità referenziale, eseguire le operazioni seguenti:
-
Determinare quali record "figlio" appartengono ai record da archiviare. Ad esempio, per archiviare i record dei beni che vengono prestati in una raccolta, determinare innanzitutto se sono presenti transazioni aperte su tali beni, ad esempio se i beni sono stati estratti ma non restituiti.
-
Eseguire una delle operazioni seguenti:
-
Se i record "figlio" possono sempre essere eliminati in modo sicuro, assicurarsi che la relazione applichi l'integrità referenziale, con eliminazioni a catena. In questo modo tutti i record "figlio" correlati verranno eliminati.
-
Se i record "figlio" non possono sempre essere eliminati in modo sicuro, valutare l'archiviazione di tutte le tabelle nel database.
-
Create una query che seleziona record "padre" che non hanno record "figlio". Usare quindi la prima query per creare le query di archiviazione (vedere la sezione Spostare periodicamente i record in una tabella di archiviazione) invece di usare la tabella "padre".
-
Sostituire periodicamente una tabella
Se si vogliono archiviare tutti i dati in una tabella, è possibile sostituire periodicamente la tabella con una copia vuota.
Importante: Se la tabella che si archivia è correlata ad altre tabelle, potrebbe essere necessario aggirare l'integrità referenziale.
-
Nel riquadro di spostamento selezionare le tabelle da archiviare, premere CTRL+C e quindi CTRL+V.
-
Nella finestra di dialogo Incolla tabella con nome , in Opzioni Incolla, selezionare Solo struttura e quindi fare clic su OK.
Access assegna alla copia il nome Copia del nome originale della tabella. -
Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla tabella originale e quindi scegliere Rinomina dal menu di scelta rapida.
Assegnare un altro nome alla tabella per indicare il contenuto, ad esempio "DailyTemperatureExtremes_archive_2019". -
Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla copia vuota e quindi scegliere Rinomina dal menu di scelta rapida. Rinominarla con il nome della tabella originale.
Sostituire periodicamente tutte le tabelle
Se si usa un database diviso, è possibile sostituire periodicamente tutte le tabelle sostituendo il database back-end con una copia vuota.
A questo scopo, preparare prima la copia vuota. A meno che la struttura del database non venga modificata, è possibile riutilizzare questa copia vuota ogni volta che si archivia. Per archiviare è sufficiente rinominare il database back-end esistente per indicare che si tratta di un archivio e salvare la copia vuota come nuovo database back-end.
Preparare una copia vuota di un database back-end
Prima di tutto, importare le definizioni di tabella per tutte le tabelle nel database back-end.
-
Nella scheda File fare clic su Nuovo, selezionare Database vuoto e quindi fare clic su Create.
-
Chiudere Tabella1.
-
Nel gruppo Importa & collegamento della scheda Dati esterni fare clic su Access.
-
Nella finestra di dialogo Carica dati esterni - Database di Access selezionare Importa tabelle, query, maschere, report, macro e moduli nel database corrente e quindi fare clic su Sfoglia.
-
Nella finestra di dialogo Apri file selezionare il database back-end. Fare clic su Apri per chiudere la finestra di dialogo Apri file e quindi fare clic su OK.
-
Nella finestra di dialogo Importa oggetti fare clic su Opzioni.
-
In Importa tabelle selezionare Solo definizione.
-
Nella scheda Tabelle fare clic su Seleziona tutto, fare clic su OK e quindi su Chiudi.
Aggiungere dati a qualsiasi tabella di ricerca nella copia vuota
Per ogni tabella di ricerca eseguire le operazioni seguenti:
-
Creare un collegamento alla tabella di ricerca nel database back-end esistente.
-
Create una query di accodamento che aggiunge tutti i record dell'originale alla copia.
Sostituire il database back-end con una copia vuota
Prima di tutto, rinominare il database back-end esistente per indicare che ora è un archivio. Aprire quindi la copia vuota e salvarla usando il nome originale del database back-end.
-
Fare clic sulla scheda File e quindi su Salva database con nome. Potrebbe essere richiesto di chiudere tutti gli oggetti aperti; in tal caso, fare clic su OK. Si apre la finestra di dialogo Salva con nome .
-
Nella casella Salva in, nella parte superiore della finestra di dialogo Salva con nome , assicurarsi di salvare il file nella stessa posizione del database back-end originale.
-
Nella casella Nome file immettere il nome del database back-end originale.
-
Nella casella Tipo file selezionare Database di Access (*.accdb).
Spostare periodicamente i record in una tabella di archiviazione
Si tratta di un processo in quattro passaggi che richiede di creare una copia vuota della tabella contenente i record da archiviare, creare una query di accodamento per copiare i record dalla tabella originale alla tabella di archiviazione, creare un query di eliminazione per rimuovere i record archiviati dalla tabella originale e infine creare una macro per eseguire entrambe le query che possono essere eseguite quando si vuole archiviare. Questo processo apparentemente complesso può essere facile se si seguono i passaggi nell'ordine in cui sono presentati di seguito:
Passaggio 1: Create una tabella di archiviazione
Passaggio 2: Create una query di accodamento per copiare i dati nella tabella di archiviazione
Passaggio 3: Create una query di eliminazione per rimuovere i dati dalla tabella originale
Passaggio 4: Create una macro per eseguire sia query di accodamento che di eliminazione
Passaggio 1: Create una tabella di archiviazione
Per mantenere tutti i record archiviati in un'unica tabella, eseguire questo passaggio una sola volta. La tabella di archiviazione creata in questo passaggio contiene tutti i record archiviati.
Per eliminare la vecchia tabella di archiviazione quando ne si crea una nuova, invece di eseguire questo passaggio è possibile usare un query di creazione tabella per copiare i dati nella tabella di archiviazione. A questo scopo, andare al passaggio 2.
Per usare una nuova tabella di archivio ogni volta che si archivia, ma anche per mantenere le tabelle di archivio precedenti, rinominare la tabella di archivio precedente prima di crearne una nuova. Se l'archiviazione viene attivata in base a una data, considerare la possibilità di denominare le tabelle di archivio precedenti in base all'intervallo di date che rappresentano.
-
Nel riquadro di spostamento selezionare la tabella contenente i record da archiviare, premere CTRL+C e quindi CTRL+V.
-
Nella casella Nome tabella eliminare le parole Copia di e aggiungere un carattere di sottolineatura e la parola "archivio" al nome della tabella esistente, quindi fare clic su OK. Ad esempio, se la tabella originale è denominata Transazioni , la tabella di archivio viene denominata Transactions_archive.
-
Nella finestra di dialogo Incolla tabella con nome , in Opzioni Incolla, selezionare Solo struttura.
Passaggio 2: Create una query di accodamento per copiare i dati nella tabella di archiviazione
-
Nel gruppo Query della scheda Crea fare clic su Struttura query.
-
Aggiungere la tabella con i record da archiviare.
-
Nella finestra di struttura della query fare doppio clic sull'asterisco (*) nella tabella appena aggiunta. Il nome della tabella e un asterisco vengono visualizzati nella prima colonna della griglia di struttura della query.
Nota: L'asterisco indica che la query deve includere tutti i campi della tabella nell'output della query. Quando si usa l'asterisco, se i campi vengono aggiunti o rimossi dalla tabella, l'output della query viene regolato di conseguenza.
-
Nella finestra di struttura della query fare doppio clic sul campo da usare per specificare una condizione che i record devono soddisfare prima di archiviarli. Ad esempio, se nella tabella Transazioni è presente un campo denominato Data archiviazione e si vogliono archiviare tutti i record in cui tale data ha più di un anno, fare doppio clic sul campo per visualizzarlo nella successiva colonna vuota della griglia di struttura della query.
Ripetere questo passaggio se si vogliono usare criteri con campi aggiuntivi.
-
Usare la riga Criteri per specificare i criteri per i campi appena aggiunti. Ad esempio, è possibile specificare che la Data archiviazione deve essere anteriore al 1° gennaio 2019 usando l'espressione <#1/1/2019# nella riga Criteri .
Se i valori dei criteri cambiano ogni volta che si archivia, è consigliabile fare in modo che la query richieda input. A questo scopo, usare un parametro nella riga Criteri in modo che la query richieda input. Per usare un parametro, usare un'espressione come di consueto, ma invece di un valore specificato usare una breve domanda racchiusa tra parentesi quadre. Ad esempio, è possibile usare l'espressione <[Transazioni di archiviazione completate prima:], in questo modo:
Per altre informazioni sull'uso dei parametri, vedere l'articolo Introduzione alle query.
È anche possibile usare la riga o per specificare condizioni alternative. Per altre informazioni sull'uso dei criteri, vedere Esempi di criteri di query.
Suggerimento: Se si usa un campo data per specificare i criteri e si vogliono archiviare tutti i record precedenti alla data corrente, immettere <Date() nella riga Criteri per il campo data.
-
Eseguire una delle operazioni seguenti:
Se la tabella di archiviazione è già stata creata, usare una query di accodamento per aggiungere i record specificati alla tabella:
-
Nel gruppo Tipo di query della scheda Struttura fare clic su Accodamento.
-
Nella casella Nome tabella della finestra di dialogo Accoda selezionare il nome della tabella di archiviazione e quindi fare clic su OK.
Nella griglia di struttura della query viene visualizzata la riga Accoda a .
-
Deselezionare la riga Accoda a per i campi usati per specificare i criteri. Solo l'asterisco deve avere un valore per Accoda a.
Se la tabella di archiviazione non è stata creata, usare una query di creazione tabella per creare la tabella di archiviazione usando i record specificati:
-
Nel gruppo Tipo di query della scheda Struttura fare clic su Creazione tabella.
-
Nella casella Nome tabella della finestra di dialogo Creazione tabella digitare il nome della tabella di archiviazione e quindi fare clic su OK.
-
-
Premere MAIUSC+INVIO per salvare la query.
Passaggio 3: Create una query di eliminazione per rimuovere i dati dalla tabella originale
-
Nel gruppo Query della scheda Crea fare clic su Struttura query.
-
Aggiungere la tabella con i record da archiviare.
-
Nella finestra di struttura della query fare doppio clic sull'asterisco (*) nella tabella appena aggiunta. Il nome della tabella e un asterisco vengono visualizzati nella prima colonna della griglia di struttura della query.
-
Nella finestra di struttura della query fare doppio clic sui campi usati per specificare una condizione nella query di accodamento.
-
Usare la riga Criteri per specificare i criteri per i campi appena aggiunti. Per altre informazioni sull'uso dei criteri, vedere Esempi di criteri di query.
Importante: Se la query di accodamento o creazione tabella usava un parametro, verificare che anche la query di eliminazione lo faccia. Tenere anche presente che si immette lo stesso valore per entrambe le query. Se si immettono valori di parametro diversi, si potrebbero perdere i dati. Per evitare la perdita di dati, è consigliabile usare una maschera per raccogliere i valori e fare in modo che le query richiedano alla maschera i valori di input. Per altre informazioni, vedere l'articolo Introduzione alle query.
-
Nel gruppo Tipo di query della scheda Struttura fare clic su Elimina.
La riga Elimina viene visualizzata nella griglia di struttura della query.
-
Premere MAIUSC+INVIO per salvare la query.
Passaggio 4: Create una macro per eseguire sia query di accodamento che di eliminazione
-
Nel gruppo Macro e codice della scheda Crea fare clic su Macro.
-
Fare clic sulla freccia a discesa accanto a Aggiungi nuova azione e quindi su ApriQuery.
Viene visualizzata l'azione ApriQuery con i relativi argomenti.
-
Nella casella Nome query selezionare la query di accodamento o creazione tabella creata nel passaggio 2.
-
Fare clic sulla freccia a discesa accanto a Aggiungi nuova azione e quindi su ApriQuery.
Viene visualizzata l'azione ApriQuery con i relativi argomenti.
-
Nella casella Nome query selezionare la query di eliminazione creata nel passaggio 3.
-
Premere CTRL+S per salvare la macro.
Per archiviare i record, eseguire la macro.