Архив на данни на Access

Отнася се за
Access за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Можете да поддържате вашите бази данни на Microsoft Access организирани и управляеми, като архивирате периодично стари или неактивни записи. Можете да архивирате всички таблици в база данни, конкретни таблици или само определени записи – например записи, по-стари от определена дата. Тази тема обяснява как да използвате три различни опции за архивиране на данните във вашата база данни на Access.

В тази статия

Кога трябва да помислите за архивиране?

Когато база данни на вашия компютър съдържа данни, които не планирате повече да използвате, но искате да ги запазите на удобно ниво, в случай че имате нужда от тях в даден момент или за да спазите правила за съхранение на данни, архивирането е добър начин да запазите тези данни. Архивирането често се използва и за запазване на данни на базата на условие за дата, например в края на месец.

Начини за архивиране на данни

Следващата таблица съдържа методи за архивиране на данни, описание на метода, обяснение кога трябва да използвате всеки метод и други специфични съображения за метода.

Метод на приготвяне Описание Използвайте, когато... Други съображения
Периодично заместване на таблица Периодично прави архивно копие на определена таблица и замества тази таблица с ново, празно копие. Всички записи в таблицата отговарят на условията, които използвате за определяне на това дали да се архивират.

ПРИМЕР: Имате таблица, която съхранява крайните дневни температури. Всяка година архивирате таблицата и започвате начисто с празна.
Периодично заместване на всички таблици Периодично правете архивно копие на сървърната база данни и след това замествайте сървърната база данни с нова, празна такава. Изисква разделена база данни (база данни, съдържаща: сървърен файл на база данни, съдържащ всички таблици, и клиентски файл на база данни, съдържащ всички други обекти на базата данни). Всички записи в по-голямата част от таблиците в базата данни отговарят на условието, което използвате за определяне дали да се архивират.

ПРИМЕР: Вашата база данни се състои от няколко таблици с различни видове метеорологични данни. Всяка година вие архивирате всички таблици.
  • Ако имате справочни таблици (таблици, които използвате, за да съхранявате стойности за търсене, например пощенски кодове или отдели), може да се наложи да импортирате тези данни в новата сървърна база данни.
  • Трябва да архивирате базата данни ръчно. Не можете да използвате макрос за този метод.
Периодично преместване на записи в архивна таблица Периодично изпълнява заявка, която избира записите за архивиране и добавя данните към архивна таблица, а след това вие изпълнявате заявка, за да изберете същите записи (от първоначалната таблица) и да ги изтриете. Някои от записите в таблица отговарят на условието, което използвате за определяне дали да се архивират.

ПРИМЕР: Искате да архивирате транзакциите в библиотеката (извличанията), ако датата на вкарване е най-малко на една година.
  • Може да се наложи да заобиколите целостта на връзките, особено ако записите, които искате да архивирате, са от една страна на релация "един към много". За повече информация вж. раздела " Работа около целостта на връзките ".

Предупреждение: Ако трябва да използвате параметри във вашите заявки, трябва да създадете формуляр за обработка на параметрите. В противен случай рискувате загуба на данни.

Работа около целостта на връзките

Ако записите, които искате да архивирате, са свързани със записи в други таблици, може да се наложи да заобиколите релацията. Ако записите, които искате да архивирате, са "дъщерни" записи (те принадлежат към страната "много" на релация "един към много"), вероятно можете спокойно да ги архивирате без притеснение. Ако записите, които искате да архивирате, са "родителски" записи (те принадлежат към страната "един" на релация "един към много"), когато ги архивирате, техните свързани с тях "дъщерни" записи могат:

  • Да не ви позволяват да изтривате "родителски" записи. Това може да причини проблеми, ако вече сте добавили "родителските" записи към архивната таблица.
    • Или -
  • Стават изолирани – записи, които принадлежат на "родителски елемент", който не съществува. Това може да причини проблеми с целостта и функционалността на данните във вашата база данни, която използва изолирани записи.

За да се отчете целостта на връзките, изпълнете следните стъпки:

  1. Определете кои "дъщерни" записи принадлежат към записите, които искате да архивирате. Например, за да архивирате записи за активи, които са предоставени назаем в библиотека, първо проверете дали има отворени транзакции за тези активи, т.е. дали активите са извлечени, но не са върнати.

  2. Направете едно от следните неща:

    • Ако "дъщерните" записи винаги могат да бъдат безопасно изтрити, уверете се, че релацията поддържа целостта на връзките с каскадни изтривания. Това гарантира, че всички свързани "дъщерни" записи ще бъдат изтрити.
    • Ако "дъщерните" записи не винаги могат да бъдат безопасно изтрити, помислете за архивиране на всички таблици в базата данни.
    • Създайте заявка, която избира "родителски" записи, които нямат "дъщерни" записи. След това използвайте тази първа заявка, за да създадете заявки за архивиране (вж. раздела Периодично преместване на записи в архивна таблица), вместо да използвате "родителската" таблица.

Най-горе на страницата

Периодично заместване на таблица

Ако искате да архивирате всички данни в таблица, можете периодично да замествате таблицата с празно копие.

Важно

Ако таблицата, която архивирате, е свързана с други таблици, може да се наложи да заобиколите целостта на връзките.

  1. В навигационния екран изберете таблиците, които искате да архивирате, натиснете CTRL+C и след това натиснете CTRL+V.

  2. В диалоговия прозорец "Постави таблицата като ", под "Опции за поставяне" изберете "Само структурата" и след това щракнете върху OK.

    Access именува копието като копие на оригиналното име на таблица.

  3. В навигационния екран щракнете с десния бутон върху оригиналната таблица и след това щракнете върху "Преименуване " в контекстното меню.

    Дайте на таблицата друго име, за да укажете какво съдържа, като например "DailyTemperatureExtremes_archive_2019".

  4. В навигационния екран щракнете с десния бутон върху празното копие и след това щракнете върху "Преименуване " в контекстното меню. Преименувайте я с името на оригиналната таблица.

Най-горе на страницата

Периодично заместване на всички таблици

Ако използвате разделена база данни, можете периодично да замествате всички таблици, като замествате сървърната база данни с празно копие.

За целта първо подгответе празното копие. Освен ако структурата на вашата база данни не се промени, можете да използвате това празно копие всеки път, когато архивирате. За да архивирате, просто преименувайте съществуващата сървърна база данни, за да посочите, че е архив, и запишете празното копие като нова сървърна база данни.

Подготовка на празно копие на сървърна база данни

Първо импортирайте дефинициите на таблици за всички таблици в сървърната база данни.

  1. В раздела "Файл " щракнете върху "Създай", изберете "Празна база данни" и след това щракнете върху "Създай".
  2. Затворете "Таблица1".
  3. В раздела Външни данни , в групата Импортиране & Връзка щракнете върху Access.
  4. В диалоговия прозорец Получаване на външни данни – база данни на Access изберете "Импортиране на таблици, заявки, формуляри, отчети, макроси и модули в настоящата база данни" и след това щракнете върху "Преглед".
  5. В диалоговия прозорец за отваряне на файл изберете сървърната база данни. Щракнете върху "Отвори ", за да затворите диалоговия прозорец "Отваряне на файл ", и след това щракнете върху OK.
  6. В диалоговия прозорец за импортиране на обекти щракнете върху "Опции".
  7. Under Import Tables, select Definition Only.
  8. В раздела "Таблици " щракнете върху "Избери всички", щракнете върху OK и след това върху "Затвори".

Добавяне на данни към всички справочни таблици в празното копие

За всяка справочна таблица изпълнете следните стъпки:

  1. Връзка към таблицата за справка в съществуващата сървърна база данни.
  2. Създайте заявка за добавяне, която добавя всички записи от оригинала към копието.

Заместване на сървърната база данни с празно копие

Първо, преименувайте съществуващата сървърна база данни, за да посочите, че сега е архив. След това отворете празното копие и го запишете, като използвате оригиналното име на сървърната база данни.

  1. Щракнете върху раздела "Файл " и след това щракнете върху "Запиши базата данни като". Може да бъдете подканени да затворите всички отворени обекти; Ако е така, щракнете върху OK. Отваря се диалоговият прозорец "Запиши като ".
  2. В полето "Запиши в " (в горната част на диалоговия прозорец "Запиши като ") се уверете, че записвате файла на същото място като първоначалната сървърна база данни.
  3. В полето Име на файла въведете името на първоначалната сървърна база данни.
  4. В полето "Запиши като тип " изберете "База данни на Access" (*.accdb).

Най-горе на страницата

Периодично преместване на записи в архивна таблица

Това е процес от четири стъпки, който изисква създаване на празно копие на таблицата, съдържаща записите, които искате да архивирате, създаване на заявка за добавяне, за да копирате записите от първоначалната таблица в таблицата за архивиране, създаване на заявка за изтриване, за да премахнете архивираните записи от първоначалната таблица, и накрая създаване на макрос за изпълнение и на двете заявки, които могат да бъдат изпълнени, когато искате да архивирате. Този на пръв поглед сложен процес може да бъде лесен, ако следвате стъпките в реда, в който са представени по-долу:

Стъпка 1: Създаване на архивна таблица

Стъпка 2: Създаване на заявка за добавяне, за да копирате данни в архивната таблица

Стъпка 3: Създаване на заявка за изтриване, за да премахнете данни от първоначалната таблица

Стъпка 4: Създаване на макрос за изпълнение на заявки за добавяне и изтриване

Стъпка 1: Създаване на архивна таблица

За да запазите всички архивирани записи в една таблица, изпълнете тази стъпка веднъж. Архивната таблица, която създавате в тази стъпка, ще съхранява всички ваши архивирани записи.

За да изтриете старата архивна таблица, когато създавате нова, вместо да изпълнявате тази стъпка, можете да използвате заявка за създаване на таблица, за да копирате данните в архивната таблица. За целта преминете към стъпка 2.

За да използвате нова архивна таблица всеки път, когато архивирате, но при това да запазите старите архивни таблици, преименувайте старата архивна таблица, преди да създадете нова. Ако архивирате въз основа на дата, помислете дали да не наименувате вашите стари архивни таблици според диапазона от дати, които представят.

  1. В навигационния екран изберете таблицата със записи за архивиране, натиснете CTRL+C и след това натиснете CTRL+V.
  2. В полето Име на таблица изтрийте думите Копиране на и добавяне на долна черта и думата "архив" към съществуващото име на таблицата, след което щракнете върху OK. Ако например първоначалната таблица се нарича "Транзакции ", архивната таблица се нарича Transactions_archive.
    Поставяне на таблицата като
  3. В диалоговия прозорец " Постави таблицата като ", под "Опции за поставяне" изберете "Само структура".

Стъпка 2: Създаване на заявка за добавяне, за да копирате данни в архивната таблица

  1. В раздела Създаване, в групата Заявки щракнете върху Проектиране на заявка.

  2. Добавете таблицата със записите, които искате да архивирате.

  3. В прозореца за проектиране на заявки щракнете двукратно върху звездичката (*) в таблицата, която току-що добавихте. Името на таблицата и звездичката се показват в първата колона на мрежата на заявката за проектиране.

    Забележка

    Звездичката показва, че заявката трябва да включи всички полета от таблицата в резултата от заявката. Когато използвате звездичка, ако се добавят или премахват полета от таблицата, резултатът от заявката се настройва съответно.

  4. В прозореца за проектиране на заявки щракнете двукратно върху полето, което искате да използвате, за да зададете условие, на което записите трябва да отговарят, преди да ги архивирате. Ако например във вашата таблица "Транзакции" има поле, наречено "Дата на вкарване", и искате да архивирате всички записи, за които тази дата е на повече от една година, щраквате двукратно върху полето, и то се появява в следващата празна колона на мрежата на заявката за проектиране.
    Мрежа на заявка за проектиране
    Повторете тази стъпка, ако искате да използвате критерии с допълнителни полета.

  5. Използвайте реда "Критерии", за да зададете критерии за полетата, които току-що сте добавили. Например можете да посочите, че датата на вкарване трябва да бъде преди 1 януари 2019 г., като използвате израза <#1.1.2019# в реда ' 'Критерии' '.
    Ако стойностите на критериите ви се променят всеки път, когато архивирате, трябва да направите така, че вашата заявка да иска въвеждане на данни. За да направите това, използвайте параметър в реда ' 'Критерии' ', така че заявката да иска въвеждане на данни. За да използвате параметър, използвайте израз, както обикновено, но вместо указана стойност използвайте кратък въпрос, ограден с квадратни скоби. Можете например да използвате израза <[Архив на транзакциите, завършени пред:], ето така:
    Израз с параметър
    За повече информация за използването на параметри вж. статията Въведение в заявките.
    Може също да искате да използвате реда or , за да зададете алтернативни условия. За повече информация относно използването на критерии вж. статията Примери на критерии за заявки.

    Съвет

    Ако използвате поле за дата, за да зададете критерии, и искате да архивирате всички записи, които са по-стари от текущата дата, въведете <Date() в реда Критерии за полето за дата.

  6. Направете едно от следните неща:
    Ако вече сте създали архивната таблица, използвайте заявка за добавяне, за да добавите указаните записи към тази таблица:

    1. В раздела Структура, в групата Тип заявка щракнете върху Добавяне.
    2. В диалоговия прозорец " Добавяне ", в полето "Име на таблицата " изберете името на таблицата за архивиране и след това щракнете върху OK.
      Добави към
      В мрежата за проектиране на заявка се показва редът "Добави към ".
    3. Изчистете реда "Добави към " за всички полета, които сте използвали, за да зададете критерии. (Само звездичката трябва да има стойност за "Добави към".)
      Редът ''Добави към'' на мрежата на заявка за проектиране
      Ако не сте създали архивната таблица, използвайте заявка за създаване на таблица, за да създадете архивната таблица с помощта на указаните записи:
    4. В раздела Структура, в групата Тип на заявката щракнете върху Създаване на таблица.
    5. В диалоговия прозорец "Създаване на таблица ", в полето " Име на таблицата " въведете името на архивната таблица и след това щракнете върху OK.
  7. Натиснете CTRL+S, за да запишете заявката.

Стъпка 3: Създаване на заявка за изтриване, за да премахнете данни от първоначалната таблица

  1. В раздела Създаване, в групата Заявки щракнете върху Проектиране на заявка.

  2. Добавете таблицата със записите, които искате да архивирате.

  3. В прозореца за проектиране на заявки щракнете двукратно върху звездичката (*) в таблицата, която току-що добавихте. Името на таблицата и звездичката се показват в първата колона на мрежата на заявката за проектиране.

  4. В прозореца за проектиране на заявки щракнете двукратно върху същите полета, които използвахте за задаване на условие в заявката за добавяне.

  5. Използвайте реда "Критерии", за да зададете критерии за полетата, които току-що сте добавили. За повече информация относно използването на критерии вж. статията Примери на критерии за заявки.

    Важно

    Ако заявката за добавяне или създаване на таблица използва параметър, уверете се, че заявката за изтриване също използва параметър. Помнете също, че въвеждате една и съща стойност и за двете заявки. Ако въведете различни стойности на параметри, може да загубите данни. За да предотвратите загуба на данни, помислете дали да не използвате формуляр за събиране на стойностите и да накарате заявките да питат формуляра за входните стойности. За повече информация вж. статията Въведение в заявките.

  6. В раздела Проектиране, в групата Тип на заявката щракнете върху Изтриване.
    Редът за изтриване се показва в мрежата за проектиране на заявката.
    Редът ''Изтриване'' в мрежата за проектиране на заявката

  7. Натиснете CTRL+S, за да запишете заявката.

Стъпка 4: Създаване на макрос за изпълнение на заявки за добавяне и изтриване

  1. В раздела Създаване, в групата Макроси и код щракнете върху Макрос.
  2. Щракнете върху стрелката за падащо меню до "Добавяне на ново действие", след което щракнете върху OpenQuery.
    Действието OpenQuery се появява и показва аргументите си.
  3. В полето за име на заявка изберете заявката (добавяне или създаване на таблица), която създадохте в стъпка 2.
  4. Щракнете върху стрелката за падащо меню до "Добавяне на ново действие", след което щракнете върху OpenQuery.
    Действието OpenQuery се появява и показва аргументите си.
  5. В полето " Име на заявка" изберете заявката за изтриване, която създадохте в стъпка 3.
  6. Натиснете CTRL+S, за да запишете макроса.
    Когато искате да архивирате записи, изпълнете макроса.

Най-горе на страницата