Databáze Microsoft Accessu můžete udržovat uspořádané a spravovatelné pravidelnou archivací starých nebo neaktivních záznamů. Můžete archivovat všechny tabulky v databázi, konkrétní tabulky nebo jenom určité záznamy, například záznamy starší než určité datum. Toto téma vysvětluje, jak používat tři různé možnosti archivace dat v accessové databázi.
V tomto článku
- Kdy byste měli zvážit archivaci?
- Pravidelné nahrazování tabulky
- Pravidelně nahrazovat všechny tabulky
- Pravidelné přesouvání záznamů do archivační tabulky
Kdy byste měli zvážit archivaci?
Pokud databáze v počítači obsahuje data, která již nehodláte používat, ale chcete je mít po ruce pro případ, že byste je někdy potřebovali nebo abyste splnili zásady uchovávání dat, je archivace dobrým způsobem, jak taková data uchovávat. Archivace se také často používá k uchovávání dat na základě podmínky kalendářního data, například na konci měsíce.
Způsoby archivace dat
V následující tabulce jsou uvedeny metody archivace dat, popis metody, vysvětlení, kdy je vhodné ji použít, a další specifické aspekty této metody.
| Metoda: | Popis | Použijte, když... | Další důležité informace |
|---|---|---|---|
| Pravidelné nahrazování tabulky | Pravidelně vytváří archivní kopii určité tabulky a nahrazuje tuto tabulku novou prázdnou kopií tabulky. | Všechny záznamy v tabulce splňují podmínky, na jejichž základě určujete, jestli mají archivovat záznamy. PŘÍKLAD: Máte tabulku, ve které jsou uloženy denní teplotní extrémy. Každý rok archivujete tabulku a začínáte znovu s prázdnou. |
|
| Pravidelně nahrazovat všechny tabulky | Pravidelně vytvářet archivní kopii back-end databáze a poté back-end databázi nahradit novou prázdnou databází. Vyžaduje rozdělenou databázi (databázi obsahující soubor back-end databáze, který obsahuje všechny tabulky, a soubor front-end databáze, který obsahuje všechny ostatní databázové objekty). | Všechny záznamy ve většině tabulek v databázi splňují podmínku při výběru archivace. PŘÍKLAD: Databáze se skládá z několika tabulek s různými druhy meteorologických dat. Každý rok archivujete všechny tabulky. |
|
| Pravidelné přesouvání záznamů do archivační tabulky | Pravidelně spouští dotaz, který vybere záznamy k archivaci a přidá data do archivační tabulky. Potom spuštěním dotazu vyberete ty stejné záznamy (z původní tabulky) a odstraníte je. | Některé záznamy v tabulce splňují podmínku archivace. PŘÍKLAD: Chcete archivovat knihovní transakce (výpůjčky), pokud je datum vrácení se změnami alespoň rok staré. |
Varování: Pokud potřebujete ve svých dotazech používat parametry, měli byste vytvořit formulář, který bude parametry zpracovávat. V opačném případě riskujete ztrátu dat. |
Práce kolem referenční integrity
Pokud záznamy, které chcete archivovat, souvisejí se záznamy v jiných tabulkách, bude pravděpodobně nutné tuto relaci obejít. Pokud chcete archivovat pouze "podřízené" záznamy (patří na stranu N relace 1:N), můžete je pravděpodobně bezpečně archivovat bez obav. Pokud chcete archivovat záznamy, které chcete archivovat, jsou "nadřazené" záznamy (patří na stranu 1 relace 1:N), mohou při archivaci jejich související "podřízené" záznamy:
- Zabrání vám v odstranění nadřazených záznamů. To může způsobit problémy, pokud jste už nadřazené záznamy připojili k archivační tabulce.
- Nebo -
- Stanou se "sirotky" – záznamy, které patří "nadřazenému", který neexistuje. To může způsobit problémy s integritou dat a funkčností databáze, která používá "osiřelé" záznamy.
Abyste zajistili referenční integritu, proveďte následující kroky:
Určete, které "podřízené" záznamy patří k záznamům, které chcete archivovat. Chcete-li například archivovat záznamy o majetku zapůjčeném v knihovně, nejprve zjistěte, zda jsou u tohoto majetku otevřeny nějaké transakce, tj. zda byl majetek vypůjčen, ale nebyl vrácen.
Udělejte jednu z těchto věcí:
- Pokud je možné "podřízené" záznamy vždy bezpečně odstranit, ujistěte se, že relace vynucuje referenční integritu s kaskádovým odstraněním. Tím zajistíte, že budou odstraněny všechny související "podřízené" záznamy.
- Pokud nejde vždy bezpečně odstranit "podřízené" záznamy, zvažte archivaci všech tabulek v databázi.
- Vytvořte dotaz, který vybere "nadřazené" záznamy, které nemají "podřízené" záznamy. Pak použijte tento první dotaz k vytvoření archivačních dotazů (viz část Pravidelné přesouvání záznamů do archivní tabulky), místo abyste používali nadřazenou tabulku.
Pravidelné nahrazování tabulky
Pokud chcete archivovat všechna data v tabulce, můžete ji pravidelně nahrazovat prázdnou kopií.
Důležité
Pokud je archivovaná tabulka v relaci s jinými tabulkami, může být potřeba obejít referenční integritu.
V navigačním podokně vyberte tabulky, které chcete archivovat, stiskněte kombinaci kláves CTRL+C a potom kombinaci kláves CTRL+V.
V dialogovém okně Vložit tabulku jako v části Možnosti vložení vyberte možnost Pouze struktura a klikněte na tlačítko OK.
Access pojmenuje kopii jako kopii názvu původní tabulky.
V navigačním podokně klikněte pravým tlačítkem myši na původní tabulku a v místní nabídce klikněte na příkaz Přejmenovat .
Dejte tabulce jiný název, abyste vystihli, co obsahuje, třeba "DailyTemperatureExtremes_archive_2019".
V navigačním podokně klikněte pravým tlačítkem myši na prázdnou kopii a v místní nabídce klikněte na příkaz Přejmenovat . Přejmenujte ji tak, aby měla název původní tabulky.
Pravidelně nahrazovat všechny tabulky
Pokud používáte rozdělenou databázi, můžete pravidelně nahrazovat všechny tabulky tak, že back-end databázi nahradíte prázdnou kopií.
Nejprve si připravte prázdnou kopii. Pokud se nezmění návrh databáze, můžete prázdnou kopii použít znovu při každé archivaci. Chcete-li archivovat, stačí přejmenovat existující back-end databázi, abyste označili, že se jedná o archiv, a prázdnou kopii uložit jako novou back-end databázi.
Příprava prázdné kopie back-end databáze
Nejprve naimportujte definice všech tabulek v back-end databázi.
- Na kartě Soubor klikněte na Nový, vyberte Prázdná databáze a klikněte na Vytvořit.
- Zavřete tabulku1.
- Na kartě Externí data klikněte ve skupině Import & propojení na Access.
- V dialogovém okně Načíst externí data – databáze aplikace Access vyberte možnost Importovat tabulky, dotazy, formuláře, sestavy, makra a moduly do aktuální databáze a klikněte na tlačítko Procházet.
- V dialogovém okně Otevřít soubor vyberte back-end databázi. Kliknutím na Otevřít zavřete dialogové okno Otevřít soubor a potom klikněte na OK.
- V dialogovém okně Import objektů klikněte na Možnosti.
- V části Importovat tabulky vyberte Pouze definice.
- Na kartě Tabulky klikněte na Vybrat vše, klikněte na OK a potom klikněte na Zavřít.
Přidání dat do libovolných vyhledávacích tabulek v prázdné kopii
U každé vyhledávací tabulky proveďte následující kroky:
- Vytvořte propojení s vyhledávací tabulkou v existující back-end databázi.
- Vytvořte přidávací dotaz, který přidá všechny záznamy z originálu do kopie.
Nahrazení back-end databáze prázdnou kopií
Nejprve přejmenujte existující back-end databázi, abyste označili, že se nyní jedná o archiv. Potom otevřete prázdnou kopii a uložte ji pod názvem původní back-end databáze.
- Klikněte na kartu Soubor a potom klikněte na Uložit databázi jako. Může se zobrazit výzva k zavření všech otevřených objektů. pokud ano, klikněte na OK. Otevře se dialogové okno Uložit jako .
- V poli Uložit do (v horní části dialogového okna Uložit jako ) zkontrolujte, zda soubor ukládáte na stejné místo jako původní back-end databázi.
- Do pole Název souboru zadejte název původní back-end databáze.
- V poli Uložit jako typ vyberte Databáze aplikace Access (*.accdb).
Pravidelné přesouvání záznamů do archivační tabulky
Jedná se o proces o čtyřech krocích, který vyžaduje vytvoření prázdné kopie tabulky obsahující záznamy, které chcete archivovat, vytvoření přidávacího dotazu, který zkopíruje záznamy z původní tabulky do tabulky archivace, vytvoření odstraňovacího dotazu, který odebere archivované záznamy z původní tabulky, a nakonec vytvoření makra pro spuštění obou dotazů, které je možné spustit, když chcete archivovat. Tento zdánlivě složitý proces může být snadný, pokud budete postupovat podle kroků v pořadí, ve kterém jsou uvedeny níže:
Krok 1: Vytvoření tabulky archivu
Krok 2: Vytvoření přidávacího dotazu pro zkopírování dat do archivační tabulky
Krok 3: Vytvoření odstraňovacího dotazu k odebrání dat z původní tabulky
Krok 4: Vytvoření makra pro spouštění přidávacích i odstraňovacích dotazů
Krok 1: Vytvoření tabulky archivu
Pokud chcete zachovat všechny archivované záznamy v jedné tabulce, udělejte tento krok jednou. Archivní tabulka, kterou vytvoříte v tomto kroku, bude obsahovat všechny archivované záznamy.
Pokud chcete odstranit starou archivní tabulku při vytváření nové archivní tabulky, nemusíte místo tohoto kroku dělat tento krok, ale můžete ke zkopírování dat do archivační tabulky použít vytvářecí dotaz. Když to budete chtít udělat, přejděte ke kroku 2.
Chcete-li použít novou archivní tabulku při každé archivaci, ale zároveň zachovat původní archivní tabulky, přejmenujte před vytvořením nové tabulky původní archivaci. Pokud archivujete na základě data, zvažte pojmenování starých archivních tabulek podle rozsahu dat, který představují.
- V navigačním podokně vyberte tabulku se záznamy, které chcete archivovat, stiskněte kombinaci kláves CTRL+C a potom kombinaci kláves CTRL+V.
- V poli Název tabulky odstraňte slova Kopie Of a připojte k názvu existující tabulky podtržítko a slovo "archiv". Potom klikněte na tlačítko OK. Pokud se například původní tabulka jmenuje Transakce , bude mít tabulka archivu název Transactions_archive.
- V dialogovém okně Vložit tabulku jako v části Možnosti vložení vyberte možnost Pouze struktura.
Krok 2: Vytvoření přidávacího dotazu pro zkopírování dat do archivační tabulky
Na kartě Vytvoření klikněte ve skupině Dotazů na tlačítko Návrh dotazu.
Přidejte tabulku se záznamy, které chcete archivovat.
V návrhovém okně dotazu poklikejte na hvězdičku (*) v tabulce, kterou jste právě přidali. V prvním sloupci návrhové mřížky dotazu se zobrazí název tabulky a hvězdička.
Poznámka
Hvězdička označuje, že dotaz má obsahovat všechna pole z tabulky ve výstupu dotazu. Když hvězdičku použijete a přidáte nebo z tabulky odeberete pole, výstup dotazu se odpovídajícím způsobem upraví.
V návrhovém okně dotazu poklikejte na pole, pomocí kterého chcete zadat podmínku, kterou mají záznamy před archivací splňovat. Jestliže například tabulka Transakce obsahuje pole nazvané Datum vrácení se změnami a chcete archivovat všechny záznamy, ve kterých je toto datum starší než jeden rok, poklikejte na toto pole a toto pole se zobrazí ve vedlejším prázdném sloupci návrhové mřížky dotazu.
Tento krok opakujte, pokud chcete kritéria použít u dalších polí.Řádek Kritéria slouží k zadání kritérií pro pole, která jste právě přidali. Pomocí výrazu <#1/1/2019# v řádku Kritéria můžete například určit, že datum vrácení se změnami musí být dřívější než 1. ledna 2019.
Pokud se hodnoty kritérií mění při každé archivaci, měli byste dotaz nastavit tak, aby žádal o vstupní hodnoty. Uděláte to tak, že použijete parametr v řádku Kritéria , aby dotaz vyzve k zadání vstupu. Když chcete použít parametr, použijte výraz jako obvykle, ale místo konkrétní hodnoty použijte krátkou otázku uzavřenou v hranatých závorkách. Můžete například použít výraz <[Archive transactions completed before:], například takto:
Další informace o použití parametrů najdete v článku Úvod do dotazů.
Řádek Nebo můžete použít taky k zadání alternativních podmínek. Další informace o používání kritérií naleznete v článku Příklady kritérií dotazů.Tip:
Pokud k zadání kritérií používáte pole kalendářního data a chcete archivovat všechny záznamy starší než aktuální datum, zadejte < do řádku Kritéria pro pole data Date().
Udělejte jednu z těchto věcí:
Pokud jste už archivní tabulku vytvořili, přidejte do ní zadané záznamy pomocí přidávacího dotazu:- Na kartě Návrh klikněte ve skupině Typ dotazu na Přidávací.
- V dialogovém okně Přidat vyberte v poli Název tabulky název archivní tabulky a klikněte na tlačítko OK.
V návrhové mřížce dotazu se zobrazí řádek Přidat komu . - Vymažte řádek Přidat do u všech polí, která jste použili k zadání kritérií. (Hodnotu pro Přidat k by měla mít jenom hvězdička.)
Pokud jste archivní tabulku nevytvořili, vytvořte archivní tabulku pomocí zadaných záznamů pomocí vytvářecího dotazu: - Na kartě Návrh klikněte ve skupině Typ dotazu na položku Vytvářecí.
- V dialogovém okně Vytvořit tabulku zadejte do pole Název tabulky název archivační tabulky a klikněte na tlačítko OK.
Stisknutím CTRL+S dotaz uložte.
Krok 3: Vytvoření odstraňovacího dotazu k odebrání dat z původní tabulky
Na kartě Vytvoření klikněte ve skupině Dotazů na tlačítko Návrh dotazu.
Přidejte tabulku se záznamy, které chcete archivovat.
V návrhovém okně dotazu poklikejte na hvězdičku (*) v tabulce, kterou jste právě přidali. V prvním sloupci návrhové mřížky dotazu se zobrazí název tabulky a hvězdička.
V návrhovém okně dotazu poklikejte na stejná pole, která jste použili k zadání podmínky v přidávacím dotazu.
Řádek Kritéria slouží k zadání kritérií pro pole, která jste právě přidali. Další informace o používání kritérií naleznete v článku Příklady kritérií dotazů.
Důležité
Pokud přidávací dotaz nebo vytvářecí dotaz používal parametr, ověřte, že ho obsahuje i odstraňovací dotaz. Nezapomeňte také, že pro oba dotazy zadáváte stejnou hodnotu. Pokud zadáte jiné hodnoty parametrů, může dojít ke ztrátě dat. Pokud chcete předejít ztrátě dat, zvažte shromáždění hodnot pomocí formuláře a vytvoření dotazů, aby se formuláře ptaly na vstupní hodnoty. Další informace najdete v článku Úvod k dotazům.
Na kartě Návrh ve skupině Typ dotazu klikněte na Odstraňovací.
V návrhové mřížce dotazu se zobrazí řádek Odstranit .
Stisknutím CTRL+S dotaz uložte.
Krok 4: Vytvoření makra pro spouštění přidávacích i odstraňovacích dotazů
- Na kartě Vytvořit klikněte ve skupině Makra a kód na tlačítko Makro.
- Klikněte na šipku rozevíracího seznamu vedle tlačítka Přidat novou akci a potom klikněte na OpenQuery.
Zobrazí se akce OpenQuery s jejími argumenty. - V poli Název dotazu vyberte přidávací nebo vytvářecí dotaz, který jste vytvořili v kroku 2.
- Klikněte na šipku rozevíracího seznamu vedle tlačítka Přidat novou akci a potom klikněte na OpenQuery.
Zobrazí se akce OpenQuery s jejími argumenty. - V poli Název dotazu vyberte odstraňovací dotaz, který jste vytvořili v kroku 3.
- Stisknutím kombinace kláves CTRL+S makro uložte.
Chcete-li archivovat záznamy, spusťte makro.