È possibile mantenere i database di Microsoft Access organizzati e gestibili 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 determinata data. In questo argomento viene illustrato come usare tre diverse opzioni per archiviare i dati nel database di Access.
Contenuto dell'articolo
- Quando è consigliabile considerare l'archiviazione?
- Sostituire periodicamente una tabella
- Sostituisci periodicamente tutte le tabelle
- Spostare periodicamente i record in una tabella di archivio
Quando è consigliabile considerare l'archiviazione?
Quando un database del computer contiene dati che non si prevede più di utilizzare, ma si desidera tenerli a portata di mano nel caso in cui siano necessari in un momento specifico o per soddisfare un criterio 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
Nella tabella seguente sono elencati i metodi per archiviare i dati, una descrizione del metodo, una spiegazione di quando è necessario usare ogni metodo e altre considerazioni specifiche per il metodo.
| Metodo | Descrizione | Da usare per | Altre considerazioni |
|---|---|---|---|
| Sostituire periodicamente una tabella | Periodicamente crea una copia di archivio di una tabella specifica e sostituisce tale tabella con una nuova copia vuota della tabella. | Tutti i record in una tabella soddisfano le condizioni utilizzate per determinare se archiviare o meno. ESEMPIO: hai una tabella che memorizza le temperature estreme giornaliere. Ogni anno, archivi la tabella e inizi da zero con una vuota. |
|
| Sostituisci periodicamente tutte le tabelle | Creare periodicamente una copia di archivio del database back-end e quindi sostituire il database back-end con uno nuovo vuoto. Richiede un database diviso (un database comprendente: un file di database back-end che contiene tutte le tabelle e un file di database front-end che contiene tutti gli altri oggetti di database). | Tutti i record nella maggior parte delle tabelle di un database soddisfano la condizione necessaria per determinare se archiviare il database. ESEMPIO: Il database è costituito da diverse tabelle con diversi tipi di dati meteorologici. Ogni anno, tutte le tabelle vengono archiviate. |
|
| Spostare periodicamente i record in una tabella di archivio | 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. ESEMPIO: si desidera archiviare le transazioni della libreria (prestiti) se la data di archiviazione è vecchia di almeno un anno. |
Attenzione: Se è necessario usare parametri nelle query, è consigliabile creare una maschera per gestire i parametri. In caso contrario, si rischia la perdita di dati. |
Utilizzo dell'integrità referenziale
Se i record da archiviare sono correlati a record in altre tabelle, potrebbe essere necessario aggirare la relazione. Se i record che si vogliono archiviare sono record "figlio" (appartengono al lato "molti" di una relazione uno-a-molti), è probabile che sia possibile archiviarli senza problemi. Se i record che si desidera archiviare sono record "padre" (appartengono al lato "uno" di una relazione uno-a-molti), quando vengono archiviati i record "figlio" correlati possono:
- Impedire l'eliminazione dei record "padre". Questo potrebbe causare problemi se i record "padre" sono già stati aggiunti alla tabella di archiviazione.
- Oppure -
- Diventano "orfani", ovvero record che appartengono a un "genitore" che non esiste. Questo potrebbe causare problemi con l'integrità dei dati e la funzionalità del database che usa i record "orfani".
Per tenere conto dell'integrità referenziale, eseguire i passaggi seguenti:
Determinare quali record "figlio" appartengono ai record da archiviare. Ad esempio, per archiviare i record di beni prestati in una raccolta, determinare prima se vi sono transazioni aperte su tali beni, ovvero se i beni sono stati presi in prestito 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 si garantisce che tutti i record "figlio" correlati vengano eliminati.
- Se i record "figlio" non possono essere sempre eliminati in modo sicuro, considerare la possibilità di archiviare tutte le tabelle nel database.
- Creare una query che selezioni i record "padre" che non dispongono di record "figlio". Quindi, usare la prima query per creare le query di archiviazione (vedere la sezione Spostare periodicamente i record in una tabella di archivio), invece di usare la tabella "padre".
Inizio pagina
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 archiviata è correlata ad altre tabelle, potrebbe essere necessario risolvere il problema dell'integrità referenziale.
Nel riquadro di spostamento selezionare le tabelle che si desidera archiviare, premere CTRL+C e quindi CTRL+V.
Nella finestra di dialogo Incolla tabella come , in Opzioni incolla, selezionare Solo struttura e quindi fare clic su OK.
Access denomina la copia con il nome della tabella originale.
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 alla tabella un altro nome per indicare cosa contiene, 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.
Inizio pagina
Sostituisci periodicamente tutte le tabelle
Se si usa un database suddiviso, è possibile sostituire periodicamente tutte le tabelle sostituendo il database back-end con una copia vuota.
A tale 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 esegue l'archiviazione. Per eseguire l'archiviazione, è 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 tutte le tabelle nel database back-end.
- Nella scheda File fare clic su Nuovo, selezionare Database vuoto e quindi fare clic su Crea.
- Chiudere la tabella1.
- Nel gruppo Collegamento & importazione 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 Apertura file selezionare il database back-end. Fare clic su Apri per chiudere la finestra di dialogo Apertura file , 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, su OK e quindi su Chiudi.
Aggiungere dati a qualsiasi tabella di ricerca nella copia vuota
Per ogni tabella di ricerca, eseguire la procedura seguente:
- Collegarsi alla tabella di ricerca nel database back-end esistente.
- Creare 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. Quindi, aprire la copia vuota e salvarla usando il nome del database back-end originale.
- Fare clic sulla scheda File e quindi su Salva database con nome. Potrebbe essere richiesto di chiudere tutti gli oggetti aperti; in caso affermativo, fare clic su OK. Viene visualizzata 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).
Inizio pagina
Spostare periodicamente i record in una tabella di archivio
Si tratta di un processo in quattro passaggi che richiede la creazione di una copia vuota della tabella contenente i record che si desidera archiviare, la creazione di una query di accodamento per copiare i record dalla tabella originale alla tabella di archiviazione, la creazione di una query di eliminazione per rimuovere i record archiviati dalla tabella originale e infine la creazione di una macro per eseguire entrambe le query che è possibile eseguire quando si vuole archiviare. Questo processo apparentemente complesso può essere semplice se si seguono i passaggi nell'ordine in cui sono presentati di seguito:
Passaggio 1: Creare una tabella di archiviazione
Passaggio 2: Creare una query di accodamento per copiare i dati nella tabella di archiviazione
Passaggio 3: Creare una query di eliminazione per rimuovere i dati dalla tabella originale
Passaggio 4: Creare una macro per eseguire query di accodamento ed eliminazione
Passaggio 1: Creare 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 conterrà tutti i record archiviati.
Per eliminare la vecchia tabella di archivio quando se ne crea una nuova, invece di eseguire questo passaggio, è possibile usare una query di creazione tabella per copiare i dati nella tabella di archiviazione. A tale 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 si esegue l'archiviazione in base a una data, valutare la possibilità di assegnare un nome alle tabelle di archivio precedenti in base all'intervallo di date che rappresentano.
- Nel riquadro di spostamento selezionare la tabella contenente 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 archiviazione viene denominata Transactions_archive.
- Nella finestra di dialogo Incolla tabella come , in Opzioni Incolla, selezionare Solo struttura.
Passaggio 2: Creare 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 progettazione 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. Se si usa l'asterisco, se vengono aggiunti o rimossi campi dalla tabella, l'output della query verrà modificato di conseguenza.
Nella finestra di progettazione query fare doppio clic sul campo che si vuole usare per specificare una condizione che i record devono essere soddisfatti prima di essere archiviati. Se, ad esempio, la tabella Transazioni contiene un campo denominato Data archiviazione e si vogliono archiviare tutti i record la cui data risale a più di un anno, fare doppio clic sul campo e questo verrà visualizzato nella successiva colonna vuota della griglia di struttura della query.
Ripetere questo passaggio se si vogliono usare i criteri con altri campi.Utilizzare la riga Criteri per specificare i criteri per i campi appena aggiunti. È ad esempio possibile specificare che la data di archiviazione deve essere antecedente all'1 gennaio 2019 usando l'espressione <#1/1/2019# nella riga Criteri .
Se i valori dei criteri cambiano ogni volta che si esegue l'archiviazione, è consigliabile fare in modo che la query chieda un input. A tale scopo, usare un parametro nella riga Criteri in modo che la query richieda input. Per usare un parametro, usare un'espressione come si farebbe normalmente, ma invece di un valore specificato, usare una breve domanda racchiusa tra parentesi quadre. Ad esempio, si potrebbe usare l'espressione <[Archivio transazioni 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 utilizza un campo di tipo Data per specificare i criteri e si desidera archiviare tutti i record precedenti alla data corrente, immettere <Data() nella riga Criteri del campo di 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 Aggiungi a . -
Deselezionare la riga Aggiungi a per tutti i campi usati per specificare i criteri. Solo l'asterisco deve avere un valore per Aggiungi 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 Crea tabella digitare il nome della tabella di archiviazione e quindi fare clic su OK.
Premere MAIUSC+INVIO per salvare la query.
Passaggio 3: Creare 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 progettazione 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 progettazione della query fare doppio clic sugli stessi campi usati per specificare una condizione nella query di accodamento.
Utilizzare 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 di creazione tabella usava un parametro, assicurarsi che anche la query di eliminazione usi lo stesso. Tenere inoltre presente che si immette lo stesso valore per entrambe le query. Se si immettono valori di parametro diversi, è possibile che i dati vadano persi. 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 querydella scheda Progettazione fare clic su Elimina.
La riga Elimina viene visualizzata nella griglia di struttura della query.
Premere MAIUSC+INVIO per salvare la query.
Passaggio 4: Creare una macro per eseguire query di accodamento ed 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 OpenQuery.
Viene visualizzata l'azione OpenQuery e vengono visualizzati gli argomenti. - Nella casella Nome query selezionare la query (di accodamento o di creazione tabella) creata nel passaggio 2.
- Fare clic sulla freccia a discesa accanto a Aggiungi nuova azione e quindi su OpenQuery.
Viene visualizzata l'azione OpenQuery e vengono visualizzati gli 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.
Inizio pagina