Poprzez okresowe archiwizowanie starych lub nieaktywnych rekordów można utrzymywać porządek w bazach danych programu Microsoft Access i zarządzać nimi. Archiwizować można wszystkie tabele w bazie danych, konkretne tabele lub tylko określone rekordy, na przykład rekordy starsze niż określona data. W tym temacie wyjaśniono, jak archiwizować dane w bazie danych programu Access za pomocą trzech różnych opcji.
W tym artykule
- Kiedy warto rozważyć archiwizowanie?
- Okresowe zamienianie tabeli
- Okresowe zamienianie wszystkich tabel
- Okresowe przenoszenie rekordów do tabeli archiwum
Kiedy warto rozważyć archiwizowanie?
Jeśli baza danych na komputerze zawiera dane, które nie będą już potrzebne, ale chcesz je zachować pod ręką na wypadek, gdyby były potrzebne w przyszłości lub w celu spełnienia zasad przechowywania danych, archiwizacja jest dobrym sposobem zachowania tych danych. Archiwizacja jest również często używana do przechowywania danych na podstawie warunku daty, na przykład na koniec miesiąca.
Sposoby archiwizowania danych
W poniższej tabeli wymieniono metody archiwizacji danych, opis metody, wyjaśnienia, kiedy należy używać każdej z metod, oraz inne szczegółowe zagadnienia związane z metodą.
| Sposób przygotowania | Opis | Zastosowanie | Uwagi |
|---|---|---|---|
| Okresowe zamienianie tabeli | Okresowo tworzy kopię archiwalną określonej tabeli i zastępuje tę tabelę nową, pustą kopią tabeli. | Wszystkie rekordy w tabeli spełniają warunki używane do ustalania, czy mają zostać zarchiwizowane. PRZYKŁAD: Masz tabelę, w której przechowywane są dzienne wartości ekstremalnych temperatur. Co roku archiwizujesz tabelę i zaczynasz od nowa od pustego. |
|
| Okresowe zamienianie wszystkich tabel | Okresowo twórz kopię archiwalną wewnętrznej bazy danych, a następnie zastąp ją nową, pustą. Wymaga podzielonej bazy danych (bazy danych zawierającej plik wewnętrznej bazy danych, który zawiera wszystkie tabele, oraz plik zewnętrznej bazy danych, który zawiera wszystkie inne obiekty bazy danych). | Wszystkie rekordy w większości tabel w bazie danych spełniają warunek używany do weryfikowania danych archiwizacyjnych. PRZYKŁAD: Baza danych składa się z kilku tabel z różnymi rodzajami danych meteorologicznych. Każdego roku archiwizujesz wszystkie tabele. |
|
| Okresowe przenoszenie rekordów do tabeli archiwum | Okresowo uruchamia zapytanie, które wybiera rekordy do archiwizacji i dodaje dane do tabeli archiwum, a następnie uruchamia zapytanie w celu zaznaczenia tych samych rekordów (z oryginalnej tabeli) i usunięcia ich. | Niektóre rekordy w tabeli spełniają warunek używany do weryfikacji dokumentu. PRZYKŁAD: Chcesz zarchiwizować transakcje biblioteczne (wyewidencjonowania), jeśli data zaewidencjonowania jest sprzed co najmniej roku. |
Ostrzeżenie: Jeśli musisz używać parametrów w swoich zapytaniach, utwórz formularz do obsługi parametrów. W przeciwnym razie ryzykujesz utratę danych. |
Obejście więzów integralności
Jeśli rekordy, które chcesz zarchiwizować, są powiązane z rekordami w innych tabelach, może być konieczne obejście tej relacji. Jeśli rekordy, które mają zostać zarchiwizowane, są rekordami podrzędnymi (należą po stronie "wiele" relacji jeden-do-wielu), prawdopodobnie możesz je bezpiecznie zarchiwizować bez obaw. Jeśli rekordy, które mają zostać zarchiwizowane, są rekordami "nadrzędnymi" (należącymi do strony "jeden" relacji jeden-do-wielu), ich zarchiwizowane rekordy "podrzędne" mogą:
- Uniemożliwianie usuwania rekordów "nadrzędnych". Może to spowodować problemy, jeśli rekordy "nadrzędne" zostały już dołączone do tabeli archiwum.
- LUB -
- Są rekordami odłączonymi — rekordami należącymi do nieistniejącego "elementu nadrzędnego". Może to spowodować problemy z integralnością danych i funkcjonalnością w bazie danych, w której są używane rekordy "odłączone".
Aby uwzględnić więzy integralności, należy wykonać następujące czynności:
Określ, które rekordy podrzędne należą do rekordów, które chcesz zarchiwizować. Na przykład, aby zarchiwizować rekordy zasobów, które są wypożyczane w bibliotece, najpierw określ, czy istnieją otwarte transakcje dotyczące tych zasobów, tj. czy zasoby zostały wypożyczone, ale nie zwrócone.
Wykonaj jedną z następujących czynności:
- Jeśli rekordy "podrzędne" można zawsze bezpiecznie usunąć, należy się upewnić, że w relacji są wymuszane więzy integralności z usuwaniem kaskadowym. Dzięki temu wszystkie pokrewne rekordy podrzędne zostaną usunięte.
- Jeśli nie zawsze można bezpiecznie usunąć rekordy podrzędne, należy rozważyć archiwizację wszystkich tabel w bazie danych.
- Utwórz zapytanie wybierające rekordy "nadrzędne", które nie mają rekordów "podrzędnych". Następnie za pomocą tego pierwszego zapytania utwórz zapytania archiwalne (zobacz sekcję Okresowe przenoszenie rekordów do tabeli archiwum), zamiast tabeli nadrzędnej.
Okresowe zamienianie tabeli
Jeśli chcesz zarchiwizować wszystkie dane w tabeli, możesz okresowo zastępować tabelę pustą kopią.
Ważne
Jeśli archiwizowana tabela jest powiązana z innymi tabelami, może być konieczne obejście więzów integralności.
W okienku nawigacji zaznacz tabele, które chcesz zarchiwizować, naciśnij klawisze CTRL+C, a następnie naciśnij klawisze CTRL+V.
W oknie dialogowym Wklejanie tabeli jako w obszarze Opcje wklejania wybierz opcję Tylko struktura, a następnie kliknij przycisk OK.
Program Access nada nazwę kopii jako Kopia oryginalnej nazwy tabeli.
W okienku nawigacji kliknij prawym przyciskiem myszy pierwotną tabelę, a następnie w menu skrótów kliknij polecenie Zmień nazwę .
Nadaj tabeli inną nazwę określającą jej zawartość, na przykład "DailyTemperatureExtremes_archive_2019".
W okienku nawigacji kliknij prawym przyciskiem myszy pustą kopię, a następnie w menu skrótów kliknij polecenie Zmień nazwę . Zmień jej nazwę na pierwotną nazwę tabeli.
Okresowe zamienianie wszystkich tabel
W przypadku korzystania z podzielonej bazy danych można okresowo zamieniać wszystkie tabele, zastępując wewnętrzną bazę danych pustą kopią.
W tym celu należy najpierw przygotować pustą kopię. O ile projekt bazy danych nie uległ zmianie, tej pustej kopii można używać ponownie podczas archiwizacji. Aby zarchiwizować dane, wystarczy zmienić nazwę istniejącej wewnętrznej bazy danych, aby wskazać, że jest to archiwum, a następnie zapisać pustą kopię jako nową wewnętrzną bazę danych.
Przygotowywanie pustej kopii wewnętrznej bazy danych
Najpierw zaimportuj definicje tabel dla wszystkich tabel wewnętrznej bazy danych.
- Na karcie Plik kliknij pozycję Nowy, wybierz pozycję Pusta baza danych, a następnie kliknij przycisk Utwórz.
- Zamknij tabelę1.
- Na karcie Dane zewnętrzne w grupie Importowanie & Łącze kliknij pozycję Access.
- W oknie dialogowym Pobieranie danych zewnętrznych — baza danych programu Access wybierz pozycję Importuj tabele, kwerendy, formularze, raporty, makra i moduły do bieżącej bazy danych, a następnie kliknij przycisk Przeglądaj.
- W oknie dialogowym Otwieranie pliku wybierz wewnętrzną bazę danych. Kliknij przycisk Otwórz, aby zamknąć okno dialogowe Otwieranie pliku, a następnie kliknij przycisk OK.
- W oknie dialogowym Importowanie obiektów kliknij przycisk Opcje.
- W obszarze Importuj tabele wybierz opcję Tylko definicja.
- Na karcie Tabele kliknij pozycję Zaznacz wszystko, kliknij przycisk OK, a następnie kliknij przycisk Zamknij.
Dodaj dane do wszystkich tabel odnośników w pustej kopii
Dla każdej tabeli odnośników wykonaj następujące czynności:
- Utwórz połączenie z tabelą odnośników w istniejącej wewnętrznej bazie danych.
- Utwórz zapytanie dołączające, które dodaje wszystkie rekordy od oryginału do kopii.
Zastępowanie wewnętrznej bazy danych pustą kopią
Najpierw zmień nazwę istniejącej wewnętrznej bazy danych, aby wskazać, że jest to archiwum. Następnie otwórz pustą kopię i zapisz ją, używając oryginalnej nazwy bazy danych zaplecza.
- Kliknij kartę Plik , a następnie kliknij pozycję Zapisz bazę danych jako. Może zostać wyświetlony monit o zamknięcie wszystkich otwartych obiektów. Jeśli tak, kliknij przycisk OK. Zostanie otwarte okno dialogowe Zapisywanie jako .
- Upewnij się, że plik jest zapisywany w tym samym miejscu, w którym jest zapisywana oryginalna wewnętrzna baza danych (w górnej części okna dialogowego Zapisywanie jako).
- W polu Nazwa pliku wprowadź nazwę oryginalnej wewnętrznej bazy danych.
- W polu Zapisz jako typ wybierz pozycję Baza danych programu Access (*.accdb).
Okresowe przenoszenie rekordów do tabeli archiwum
Jest to proces składający się z czterech etapów, obejmujący utworzenie pustej kopii tabeli zawierającej rekordy do archiwizacji, utworzenie zapytania dołączającego w celu skopiowania rekordów z oryginalnej tabeli do tabeli archiwum, utworzenie zapytania usuwającego w celu usunięcia zarchiwizowanych rekordów z oryginalnej tabeli i utworzenie makra uruchamiającego oba zapytania, które można uruchomić w razie potrzeby archiwizacji. Ten pozornie złożony proces może być łatwy, jeśli wykonasz kroki w kolejności, w jakiej są one przedstawione poniżej:
Krok 1. Tworzenie tabeli archiwum
Krok 2. Tworzenie zapytania dołączającego w celu skopiowania danych do tabeli archiwum
Krok 3. Tworzenie zapytania usuwającego w celu usunięcia danych z oryginalnej tabeli
Krok 4. Tworzenie makra do uruchamiania zapytań dołączających i usuwających
Krok 1. Tworzenie tabeli archiwum
Aby zachować wszystkie zarchiwizowane rekordy w jednej tabeli, wykonaj ten krok jeden raz. Tabela archiwum utworzona w tym kroku będzie zawierać wszystkie zarchiwizowane rekordy.
Aby usunąć starą tabelę archiwalną podczas tworzenia nowej tabeli, zamiast wykonywać ten krok, możesz skopiować dane do tabeli archiwalnej za pomocą zapytania tworzącego tabelę. W tym celu przejdź do kroku 2.
Aby korzystać z nowej tabeli archiwizacji za każdym razem, gdy archiwizujesz, ale zachować również stare tabele archiwizacji, zmień nazwę starej tabeli archiwum przed utworzeniem nowej. Jeśli archiwizujesz na podstawie daty, rozważ nadanie nazw starym tabelom archiwalnym zgodnie z zakresem dat, który reprezentują.
- W okienku nawigacji zaznacz tabelę zawierającą rekordy do zarchiwizowania, naciśnij klawisze CTRL+C, a następnie naciśnij klawisze CTRL+V.
- W polu Nazwa tabeli usuń wyrazy Kopia i dołącz podkreślenie oraz wyraz "archiwum" do nazwy istniejącej tabeli, a następnie kliknij przycisk OK. Na przykład, jeśli oryginalna tabela ma nazwę Transakcje , tabela archiwalna nosi nazwę Transactions_archive.
- W oknie dialogowym Wklejanie tabeli jako w obszarze Opcje wklejania wybierz opcję Tylko struktura.
Krok 2. Tworzenie zapytania dołączającego w celu skopiowania danych do tabeli archiwum
Na karcie Tworzenie w grupie Kwerendy kliknij pozycję Projekt kwerendy.
Dodaj tabelę z rekordami, które chcesz zarchiwizować.
W oknie projektu zapytania kliknij dwukrotnie gwiazdkę (*) w właśnie dodanej tabeli. W pierwszej kolumnie siatki projektu zapytania zostanie wyświetlona nazwa tabeli i gwiazdka.
Uwaga
Gwiazdka oznacza, że zapytanie powinno uwzględnić wszystkie pola z tabeli w wynikach zapytania. W przypadku użycia gwiazdki dodanie lub usunięcie pól z tabeli spowoduje odpowiednie dopasowanie wyników zapytania.
W oknie projektu zapytania kliknij dwukrotnie pole, za pomocą którego chcesz określić warunek, który powinny spełniać rekordy przed ich zarchiwizowaniem. Jeśli na przykład tabela Transakcje zawiera pole o nazwie Data zaewidencjonowania i chcesz zarchiwizować wszystkie rekordy, w których podana data jest starsza niż rok, kliknij dwukrotnie to pole i pojawi się ono w następnej pustej kolumnie siatki projektu zapytania.
Powtórz tę czynność, jeśli chcesz używać kryteriów z dodatkowymi polami.Użyj wiersza Kryteria , aby określić kryteria dla właśnie dodanych pól. Możesz na przykład określić, że data zaewidencjonowania musi być wcześniejsza niż 1 stycznia 2019 r., używając wyrażenia <#1/1/2019# w wierszu Kryteria .
Jeśli wartości kryteriów zmieniają się przy każdej archiwizacji, należy skonfigurować w zapytaniu monit o podanie danych wejściowych. W tym celu należy użyć parametru w wierszu Kryteria , aby kwerenda monitowała o wprowadzenie pewnych danych. Aby użyć parametru, użyj wyrażenia w normalny sposób, ale zamiast określonej wartości użyj krótkiego pytania ujętego w nawiasy kwadratowe. Można na przykład użyć wyrażenia <[Transakcje archiwum zakończone przed:] w następujący sposób:
Aby uzyskać więcej informacji na temat używania parametrów, zobacz artykuł Wprowadzenie do zapytań.
Możesz również użyć wiersza lub w celu określenia warunków alternatywnych. Aby uzyskać więcej informacji o posługiwaniu się kryteriami, zobacz artykuł Przykłady kryteriów zapytań.Porada
Jeśli określasz kryteria za pomocą pola daty i chcesz archiwizować wszystkie rekordy starsze niż bieżąca data, wprowadź <Date() w wierszu Kryteria pola daty.
Wykonaj jedną z następujących czynności:
Jeśli tabela archiwalna została już utworzona, użyj zapytania dołączającego, aby dodać określone rekordy do tej tabeli:- Na karcie Projektowanie w grupie Typ zapytania kliknij przycisk Dołącz.
- W oknie dialogowym Dołączanie w polu Nazwa tabeli wybierz nazwę tabeli archiwum, a następnie kliknij przycisk OK.
W siatce projektu kwerendy zostanie wyświetlony wiersz Dołącz do . - Wyczyść wiersz Dołączanie do dla wszystkich pól, które zostały użyte do określenia kryteriów. (Tylko gwiazdka powinna mieć wartość, do której należy dołączyć).
Jeśli jeszcze nie utworzono tabeli archiwum, należy użyć zapytania tworzącego tabelę w celu utworzenia tabeli archiwalnej przy użyciu określonych rekordów: - Na karcie Projektowanie w grupie Typ zapytania kliknij pozycję Utwórz tabelę.
- W oknie dialogowym Tworzenie tabeli w polu Nazwa tabeli wpisz nazwę tabeli archiwum, a następnie kliknij przycisk OK.
Naciśnij klawisze CTRL+S, aby zapisać zapytanie.
Krok 3. Tworzenie zapytania usuwającego w celu usunięcia danych z oryginalnej tabeli
Na karcie Tworzenie w grupie Kwerendy kliknij pozycję Projekt kwerendy.
Dodaj tabelę z rekordami, które chcesz zarchiwizować.
W oknie projektu zapytania kliknij dwukrotnie gwiazdkę (*) w właśnie dodanej tabeli. W pierwszej kolumnie siatki projektu zapytania zostanie wyświetlona nazwa tabeli i gwiazdka.
W oknie projektu zapytania kliknij dwukrotnie te same pola, które zostały użyte do określenia warunku zapytanie dołączającego.
Użyj wiersza Kryteria , aby określić kryteria dla właśnie dodanych pól. Aby uzyskać więcej informacji o posługiwaniu się kryteriami, zobacz artykuł Przykłady kryteriów zapytań.
Ważne
Jeśli w zapytaniu dołączającym lub tworzącym tabelę był używany parametr, upewnij się, że jest on również użyty w zapytaniu usuwającym. Pamiętaj, że wprowadzasz tę samą wartość dla obu zapytań. Wprowadzenie innych wartości parametrów może spowodować utratę danych. Aby zapobiec utracie danych, rozważ użycie formularza do zbierania wartości i utworzenie monitu formularza o podanie wartości wejściowych. Aby uzyskać więcej informacji, zobacz artykuł Wprowadzenie do zapytań.
Na karcie Projektowanie w grupie Typ zapytania kliknij przycisk Usuń.
Wiersz Usuń zostanie wyświetlony w siatce projektu kwerendy.
Naciśnij klawisze CTRL+S, aby zapisać zapytanie.
Krok 4. Tworzenie makra do uruchamiania zapytań dołączających i usuwających
- Na karcie Tworzenie w grupie Makra i kod kliknij pozycję Makro.
- Kliknij strzałkę listy rozwijanej obok pozycji Dodaj nową akcję, a następnie kliknij pozycję OtwórzKwerendę.
Zostanie wyświetlona akcja OtwórzKwerendę z wyświetlonymi argumentami. - W polu Nazwa zapytania wybierz zapytanie (dołączające lub tworzące tabelę) utworzone w kroku 2.
- Kliknij strzałkę listy rozwijanej obok pozycji Dodaj nową akcję, a następnie kliknij pozycję OtwórzKwerendę.
Zostanie wyświetlona akcja OtwórzKwerendę z wyświetlonymi argumentami. - W polu Nazwa zapytania wybierz zapytanie usuwające utworzone w kroku 3.
- Naciśnij klawisze CTRL+S, aby zapisać makro.
Aby zarchiwizować rekordy, uruchom makro.