Databáze Microsoft Accessu můžete udržovat uspořádané a spravovatelné tak, že budete pravidelně archivovat staré nebo neaktivní záznamy. Archivovat můžete všechny tabulky v databázi, konkrétní tabulky nebo jenom konkrétní záznamy – například záznamy, které jsou starší než určité datum. Toto téma vysvětluje, jak pomocí tří různých možností archivovat data v accessové databázi.
V tomto článku
Kdy byste měli zvážit archivaci?
Pokud databáze ve vašem počítači obsahuje data, která už neplánujete používat, ale chcete je mít po ruce pro případ, že je budete potřebovat v určitém okamžiku, nebo kvůli splnění zásad uchovávání dat, je archivace dobrým způsobem, jak taková data zachovat. Archivace se také často používá k uchovávání dat na základě podmínky data, například na konci měsíce.
Způsoby archivace dat
Následující tabulka uvádí metody pro archivaci dat, popis metody, vysvětlení, kdy byste měli jednotlivé metody použít, a další specifické aspekty metody.
Metoda |
Popis |
Použít, když... |
Další důležité informace |
Pravidelně vytváří archivní kopii konkrétní tabulky a nahrazuje ji novou prázdnou kopií tabulky. |
Všechny záznamy v tabulce splňují podmínky, které používáte k určení, jestli se mají archivovat. PŘÍKLAD: Máte tabulku, která ukládá denní teplotní extrémní teploty. Každý rok archivujete tabulku a začnete od začátku s prázdnou. |
|
|
Pravidelně vytvořte archivní kopii back-end databáze a pak nahraďte back-end databázi novou, prázdnou. Vyžaduje rozdělenou databázi (databázi obsahující back-endový databázový soubor, 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, kterou používáte k určení, jestli se mají archivovat. 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ě spouští dotaz, který vybere záznamy pro archivaci a přidá data do tabulky archivu, a pak spustíte dotaz, který vybere stejné záznamy (z původní tabulky) a odstraní je. |
Některé záznamy v tabulce splňují podmínku, kterou používáte k určení, zda se mají archivovat. PŘÍKLAD: Chcete archivovat transakce knihovny (rezervace), pokud je datum vráceno se změnami nejméně jeden rok. |
Upozornění: Pokud potřebujete v dotazech použít parametry, měli byste vytvořit formulář pro zpracování parametrů. Jinak riskujete ztrátu dat. |
Řešení referenční integrity
Pokud záznamy, které chcete archivovat, souvisejí se záznamy v jiných tabulkách, možná budete muset obejít relaci. Pokud jsou záznamy, které chcete archivovat, "podřízené" (patří na stranu "N" Relace 1:N ), můžete je pravděpodobně bezpečně archivovat bez obav. Pokud jsou záznamy, které chcete archivovat, "nadřazené" záznamy (patří na stranu "1" Relace 1:N ), pokud je archivujete, jejich související "podřízené" záznamy mohou:
-
Zabraňte odstranění "nadřazených" záznamů. To může způsobit problémy, pokud jste už připojili "nadřazené" záznamy k archivační tabulce.
- nebo -
-
Stanou se "osamocené" – záznamy, které patří do nadřazeného objektu, který neexistuje. To může způsobit problémy s integritou a funkčností dat ve vaší databázi, která používá "osamocené" záznamy.
Pokud chcete vzít v úvahu 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 prostředcích, které jsou zapůjčeny v knihovně, nejprve určete, zda jsou u těchto prostředků otevřené nějaké transakce, tj. zda byly prostředky rezervovány, ale nebyly vráceny.
-
Udělejte něco z tohoto:
-
Pokud se "podřízené" záznamy dají vždy bezpečně odstranit, ujistěte se, že relace vynucuje referenční integritu s kaskádovým odstraněním. Tím se zajistí odstranění všech souvisejících "podřízených" záznamů.
-
Pokud "podřízené" záznamy nelze vždy bezpečně odstranit, zvažte archivaci všech tabulek v databázi.
-
Create dotaz, který vybere nadřazené záznamy, které nemají podřízené záznamy. Pak použijte první dotaz k vytvoření archivních dotazů (viz část Pravidelné přesouvání záznamů do tabulky archivu) místo použití nadřazené tabulky.
-
Pravidelné nahrazení tabulky
Pokud chcete archivovat všechna data v tabulce, můžete tabulku pravidelně nahrazovat prázdnou kopií.
Důležité informace: Pokud archivovaná tabulka souvisí s jinými tabulkami, možná budete muset obejít referenční integritu.
-
V navigačním podokně vyberte tabulky, které chcete archivovat, stiskněte kombinaci kláves CTRL+C a potom ctrl+V.
-
V dialogovém okně Vložit tabulku jako vyberte v části Možnosti vložení možnost Pouze struktura a potom klikněte na OK.
Access kopii pojmenuje jako kopii původního názvu tabulky. -
V navigačním podokně klikněte pravým tlačítkem myši na původní tabulku a potom v místní nabídce klikněte na Příkaz Přejmenovat .
Pojmenujte tabulku jiným názvem, který označuje, co obsahuje, například "DailyTemperatureExtremes_archive_2019". -
V navigačním podokně klikněte pravým tlačítkem na prázdnou kopii a potom v místní nabídce klikněte na Přejmenovat . Přejmenujte ji pomocí názvu původní tabulky.
Pravidelné nahrazení všech tabulek
Pokud používáte rozdělenou databázi, můžete pravidelně nahrazovat všechny tabulky nahrazením back-end databáze prázdnou kopií.
Uděláte to tak, že nejprve připravíte prázdnou kopii. Pokud se návrh databáze nezmění, můžete tuto prázdnou kopii znovu použít pokaždé, když archivujete. Pokud chcete archivovat, jednoduše přejmenujte existující back-end databázi, abyste označili, že se jedná o archiv, a uložte prázdnou kopii jako novou back-end databázi.
Příprava prázdné kopie back-endové databáze
Nejprve importujte definice tabulek pro všechny tabulky v back-endové databázi.
-
Na kartě Soubor klikněte na Nový, vyberte Prázdná databáze a potom klikněte na Create.
-
Zavřete tabulku Table1.
-
Na kartě Externí data klikněte ve skupině Importovat & Odkaz na Přístup.
-
V dialogovém okně Načíst externí data – databáze Accessu vyberte Importovat tabulky, dotazy, formuláře, sestavy, makra a moduly do aktuální databáze a potom klikněte na Procházet.
-
V dialogovém okně Otevřít soubor vyberte back-endovou databázi. Kliknutím na Otevřít zavřete dialogové okno Otevřít soubor a potom klikněte na OK.
-
V dialogovém okně Importovat objekty 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 na Zavřít.
Přidání dat do všech vyhledávacích tabulek v prázdné kopii
Pro každou vyhledávací tabulku proveďte následující kroky:
-
Odkaz na vyhledávací tabulku v existující back-end databázi
-
Create přidávací dotaz, který přidá všechny záznamy z originálu do kopie.
Nahrazení back-endové databáze prázdnou kopií
Nejprve přejmenujte existující back-end databázi, abyste označili, že se teď jedná o archiv. Pak otevřete prázdnou kopii a uložte ji pomocí původního názvu 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, že soubor ukládáte na stejné místo jako původní back-endová databáze.
-
Do pole Název souboru zadejte název původní back-endové databáze.
-
V poli Uložit jako typ vyberte Access Database (*.accdb).
Pravidelné přesouvání záznamů do tabulky archivu
Jedná se o čtyřstupňový proces, který vyžaduje vytvoření prázdné kopie tabulky obsahující záznamy, které chcete archivovat, vytvoření přidávacího dotazu pro zkopírování záznamů z původní tabulky do archivační tabulky, vytvoření Odstraňovací dotaz pro odebrání archivovaných záznamů z původní tabulky a nakonec vytvoření makra pro spuštění obou dotazů, které se dají spustit, když chcete archivovat. Tento zdánlivě složitý proces může být snadný, pokud budete postupovat podle kroků v pořadí, v jakém jsou uvedeny níže:
Krok 1: Create tabulky archivu
Krok 2: Create přidávací dotaz pro kopírování dat do tabulky archivu
Krok 3: Create odstraňovacího dotazu pro odebrání dat z původní tabulky
Krok 4: Create makra ke spouštění přidávacích i odstraňovacích dotazů
Krok 1: Create tabulky archivu
Pokud chcete uchovávat všechny archivované záznamy v jedné tabulce, proveďte tento krok jednou. Tabulka archivu, kterou vytvoříte v tomto kroku, bude obsahovat všechny archivované záznamy.
Pokud chcete při vytváření nové odstranit starou tabulku archivu, můžete místo tohoto kroku zkopírovat data do tabulky archivu pomocí Vytvářecí dotaz. Uděláte to tak, že přejdete ke kroku 2.
Pokud chcete při každé archivaci použít novou tabulku archivu, ale chcete zachovat i staré tabulky archivu, přejmenujte starou tabulku archivu před vytvořením nové tabulky archivu. 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 obsahující záznamy, které chcete archivovat, stiskněte kombinaci kláves CTRL+C a potom stiskněte kombinaci kláves CTRL+V.
-
V poli Název tabulky odstraňte slova Copy Of a připojte podtržítko a slovo "archiv" k názvu existující tabulky a potom klikněte na OK. Pokud má například původní tabulka název Transakce , má archivní tabulka název Transactions_archive.
-
V dialogovém okně Vložit tabulku jako vyberte v části Možnosti vložení možnost Pouze struktura.
Krok 2: Create přidávací dotaz pro kopírování dat do tabulky archivu
-
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 okně návrhu dotazu poklikejte na hvězdičku (*) v tabulce, kterou jste právě přidali. Název tabulky a hvězdička se zobrazí v prvním sloupci návrhové mřížky dotazu.
Poznámka: Hvězdička označuje, že dotaz by měl ve výstupu dotazu obsahovat všechna pole z tabulky. Pokud při použití hvězdičky přidáte pole z tabulky nebo je z tabulky odeberete, výstup dotazu se odpovídajícím způsobem upraví.
-
V okně návrhu dotazu poklikejte na pole, které chcete použít k zadání podmínky, kterou mají záznamy splňovat, než je archivujete. Pokud například tabulka Transakce obsahuje pole s názvem Datum se změnami a chcete archivovat všechny záznamy, ve kterých je toto datum starší než rok, poklikejte na pole a zobrazí se v dalším prázdném sloupci návrhové mřížky dotazu.
Tento krok opakujte, pokud chcete použít kritéria s dalšími poli.
-
Pomocí řádku Kritéria můžete zadat kritéria 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 odeslání se změnami musí být dřívější než 1. ledna 2019.
Pokud se hodnoty kritérií při každé archivaci změní, měli byste dotaz požádat o vstup. Provedete to tak, že použijete parametr v řádku Kritéria , aby dotaz požádal o vstup. Pokud chcete použít parametr, použijte výraz obvyklým způsobem, ale místo zadané hodnoty použijte krátkou otázku uzavřenou do hranatých závorek. Můžete například použít výraz <[Transakce archivu dokončené před:] například takto:
Další informace o používání parametrů najdete v článku Úvod do dotazů.
Můžete také použít řádek nebo k určení 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, které jsou starší než aktuální datum, zadejte <Date() do řádku Kritéria pro pole datum.
-
Udělejte jednu z těchto věcí:
Pokud jste už vytvořili tabulku archivu, přidejte do této tabulky pomocí přidávacího dotazu zadané záznamy:
-
Na kartě Návrh klikněte ve skupině Typ dotazu na Přidávací.
-
V dialogovém okně Připojit vyberte v poli Název tabulky název tabulky archivu a klikněte na OK.
V návrhové mřížce dotazu se zobrazí řádek Připojit do .
-
Zrušte zaškrtnutí řádku Připojit do u všech polí, která jste použili k zadání kritérií. (Pouze hvězdička by měla mít hodnotu připojit do.)
Pokud jste tabulku archivu nevytvořili, vytvořte archivní tabulku pomocí zadaných záznamů pomocí vytvtvovací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 tabulky archivu a klikněte na OK.
-
-
Stisknutím CTRL+S dotaz uložte.
Krok 3: Create odstraňovacího dotazu pro 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 okně návrhu dotazu poklikejte na hvězdičku (*) v tabulce, kterou jste právě přidali. Název tabulky a hvězdička se zobrazí v prvním sloupci návrhové mřížky dotazu.
-
V okně návrhu dotazu poklikejte na stejná pole, která jste použili k zadání podmínky v přidávacím dotazu.
-
Pomocí řádku Kritéria můžete zadat kritéria 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é informace: Pokud přidávací nebo vymýšlovací dotaz používal parametr, ujistěte se, že to dělá i odstraňovací dotaz. Nezapomeňte také, že pro oba dotazy zadáte stejnou hodnotu. Pokud zadáte jiné hodnoty parametrů, může dojít ke ztrátě dat. Pokud chcete zabránit ztrátě dat, zvažte použití formuláře ke shromáždění hodnot a zadání vstupních hodnot v dotazech do formuláře. Další informace najdete v článku Úvod do dotazů.
-
Na kartě Návrh ve skupině Typ dotazu klikněte na Odstraňovací.
Řádek Odstranit se zobrazí v návrhové mřížce dotazu.
-
Stisknutím CTRL+S dotaz uložte.
Krok 4: Create makra ke 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 možnosti Přidat novou akci a potom klikněte na OtevřítQuery.
Zobrazí se akce OpenQuery a její argumenty.
-
V poli Název dotazu vyberte dotaz (připojit nebo vytvořit tabulku), který jste vytvořili v kroku 2.
-
Klikněte na šipku rozevíracího seznamu vedle možnosti Přidat novou akci a potom klikněte na OtevřítQuery.
Zobrazí se akce OpenQuery a její argumenty.
-
V poli Název dotazu vyberte odstraňovací dotaz, který jste vytvořili v kroku 3.
-
Makro uložte stisknutím kombinace kláves CTRL+S.
Pokud chcete archivovat záznamy, spusťte makro.