Архивация данных Access

Примечание:  Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке) .

Для упорядочения данных можно периодически архивировать старые или неактивные записи. Предположим, что для управления отделом абонемента библиотеки используется Access. Существует таблица, применяемая для отслеживания выдачи книг, с полем, в котором указана дата выдачи, и полем с датой возврата. Допустим, что согласно политике хранения записей о выдаче книг их требуется архивировать через год после возврата книги и удалять через два года.

Можно архивировать все таблицы базы данных, определенные таблицы или только некоторые записи, например записи, созданные ранее определенной даты. В этом разделе описаны способы архивации данных.

В этой статье

Общие сведения

Периодически переместить записей в таблицу архива

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

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

Общие сведения

Данные, которые больше не планируется использовать, но требуется сохранить на всякий случай, рекомендуется архивировать. План архивации может определяться установленной политикой, такой как политика хранения данных.

Архивирование часто используется, когда данные требуется сохранять в определенную дату, например в конце месяца.

Способы архивации данных

В приведенной ниже таблице описаны способы архивации данных, указаны ситуации, при которых следует применять каждый из них, и приведены другие рекомендации.

Метод

Описание

Условия применения

Другие рекомендации

Периодически переместить записей в таблицу архива

Периодически можно выполнять запрос, который выбирает данные для архивации и добавляет их в архивную таблицу. Затем выполняется запрос, который выбирает эти же данные (в исходной таблице) и удаляет их.

Некоторые из записей в таблице удовлетворяют условию, которое применяется для определения необходимости архивации.

Пример: необходимо архивировать записи о выдаче книг из библиотеки, значение "Дата возврата" для которых равно по крайней мере одному году.

  • Может потребоваться обеспечить целостность данных, особенно если записи, которые требуется архивировать, находятся на одной стороне отношения отношение "один-ко-многим".

  • Если вам нужно с помощью параметров в запросах, следует Создание формы для обработки параметров. В противном случае — риск потери данных.

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

Периодически можно создавать архивную копию определенной таблицы и заменять таблицу новым пустым экземпляром.

Все записи в таблице соответствуют условию, которое используется для определения необходимости архивации.

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

  • Может потребоваться обеспечить целостность данных.

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

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

Все записи в большинстве таблиц в базе данных соответствуют условию, которое используется для определения необходимости архивации.

Пример: база данных состоит из нескольких таблиц с различными типами метеорологических данных. Каждый год можно архивировать все таблицы.

  • При наличии таблиц подстановки (таблиц, в которых хранятся такие справочные сведения, как почтовые индексы или названия отделов) может потребоваться импортировать их сведения в новую базу данных с таблицами.

  • В этом способе нельзя использовать макрос. Базу данных необходимо архивировать вручную.

Обеспечение целостности данных

Если записи, которые требуется архивировать, связаны с записями в других таблицах, возможно, потребуется учесть эту связь. Если записи, которые требуется архивировать, являются "дочерними" (относятся к стороне "многие" в отношении отношение "один-ко-многим"), в большинстве случаев их архивация не имеет никаких последствий. Если такие записи являются "родительскими" (относятся к стороне "один" в отношении отношение "один-ко-многим"), при их архивации могут возникнуть описанные ниже ситуации.

  • При наличии дочерних записей может быть невозможно удалить родительские записи. Это может привести к проблемам, если родительские записи уже добавлены в архивную таблицу.

    - или -

  • Дочерние записи могут «потеряться», т. е. будут относиться к несуществующей родительской записи. Это может привести к проблемам с целостностью данных и различными функциями базы данных, в которых используются такие потерянные записи.

Чтобы избежать нарушения целостности данных, выполните указанные ниже действия.

  1. Определите, какие дочерние записи принадлежат к записям, которые требуется архивировать. Например, если нужно заархивировать записи книг в библиотеке, необходимо определить, имеются ли незакрытые транзакции, т. е. книги, которые были выданы, но не возвращены.

  2. Выполните одно из указанных ниже действий.

    • Если «дочерний» записи могут всегда быть безопасно удалены, убедитесь, что связь условия целостности данных, с каскадное удаление. Это гарантирует, что все связанные «дочерние» записи будут удалены.

    • Если «дочерние» записи нельзя удалить всегда безопасно, рассмотрите возможность архивации всех таблиц в базе данных.

    • Создание запроса для отбора записей «родительский», у которых нет записей «потомки». Затем с помощью этого первого запроса создавать запросы архив (обратитесь к разделу периодически перемещение записей в таблицу архив), вместо использования в таблице «родительский».

      Совет: Для поиска записей, не имеющих подчиненных, можно использовать мастер запросов. Для получения дополнительных сведений обратитесь к статье Сравнение двух таблиц с целью выявления записей без соответствия.

К началу страницы

Периодическое перемещение записей в архивную таблицу

Прежде всего создайте пустую копию таблицы, содержащей записи, которые требуется архивировать. Эта новая пустая таблица является архивной таблицей. Создайте запрос на добавление для копирования записей из исходной таблицы в архивную таблицу. Затем создайте запрос на удаление, чтобы удалить архивированные записи из исходной таблицы. После этого создайте макрос, который выполняет оба запроса. Этот макрос необходимо запускать при необходимости архивации записей.

Совет: Макрос можно назначить кнопке на форме, чтобы он выполнялся при ее нажатии.

Шаг 1: Создание таблицы архива

Шаг 2: Создание запроса, копирование данных в таблицу архива

Шаг 3: Создание запроса на удаление, который удаляет те же данные из исходной таблицы

Действие 4: Создание макроса, который запускается обоих запросов

Действие 1. Создание архивной таблицы

Если требуется хранить все архивированные записи в одной таблице, это действие необходимо выполнить только один раз. Архивная таблица, создаваемая в этом действии, будет содержать все архивные записи.

Если вы хотите destroy старый архив таблицы при создании нового, не нужно выполнить этот шаг. С помощью запрос на создание таблицы вместо запроса на добавление для копирования данных в таблицу архив. Чтобы сделать это, перейдите к шагу 2.

Если требуется создавать новую архивную таблицу при каждой архивации и при этом сохранять старые таблицы, переименовывайте старую таблицу перед созданием новой. При архивации на основе даты рекомендуется указывать в именах таблиц периоды времени, к которым они относятся.

Примечание: Если создается новая архивная таблица и при этом требуется сохранить старую, необходимо переименовать ее перед выполнением запросов.

  1. В области переходов выберите таблицу, включающую архивируемые записи, и нажмите клавиши CTRL + C, а затем — клавиши CTRL + V.

  2. В разделе Параметры вставки диалогового окна Вставка таблицы выберите пункт Только структура.

  3. В поле Имя таблицы удалите нужные слова, Копия и подчеркивания и слово «архив» добавление записей в таблицу имя существующей таблицы и нажмите кнопку ОК. Например если исходная таблица называется транзакций в таблице архив называется Transactions_archive.

    Вставка таблицы

Действие 2. Создание запроса, копирующего данные в архивную таблицу

  1. На вкладке Создание в группе Другие нажмите кнопку Конструктор запросов.

  2. С помощью диалогового окна Добавление таблицы добавьте таблицу, записи которой требуется архивировать. Закройте диалоговое окно Добавление таблицы.

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

    Примечание: Звездочка показывает, что выходные данные запроса должны включать все поля из таблицы. При добавлении или удалении полей в таблице выходные данные запроса будут меняться соответствующим образом.

  4. В окне конструктора запросов дважды щелкните поле, используемое для указания условия, которому должны соответствовать архивируемые записи. Например, если в таблице «Транзакции» есть поле «Дата возврата» и требуется заархивировать все записи, давность которых превышает один год, дважды щелкните поле «Дата возврата». В следующем пустом столбце бланка запроса появится поле.

    Бланк запроса

    Повторите это действие, если требуется задать условия для дополнительных полей.

  5. Используйте строку условия для укажите условия для полей, которые вы только что добавили. Например, можно указать, что установлен флажок в Дата должна быть меньше 1 января 2008 с помощью выражения < # 1/1/2008 в строке условие отбора.

    Если ваш условий значения изменяются при каждом сохранении, необходимо убедиться в запрос для ввода данных. Чтобы сделать это, используйте параметров в строке условие отбора таким образом, чтобы запрос запросом для ввода данных. Чтобы использовать параметр, используйте выражение как обычно должны, но вместо заданного значения, используйте краткий вопрос заключены в квадратные скобки. Например, можно использовать выражение < [архивировать транзакций, выполненных до:], вот так:

    Выражение с параметрами

    Дополнительные сведения об использовании параметров читайте в статье Настройка запроса данных для запроса.

    Можно также с помощью строки или задать альтернативные условия. Дополнительные сведения об использовании критериев читайте в статье Примеры условий запроса.

    Совет: Если указать условия с помощью поля даты, и вы хотите архивировать все записи, возраст которых превышает текущую дату, введите < Date() в строке условие отбора для поля даты.

  6. Выполните одно из указанных ниже действий.

    • Если архивная таблица уже создана, для добавления в нее указанных записей необходимо использовать запрос на добавление.

      1. На вкладке Разработка в группе Тип запроса щелкните элемент Добавить.

      2. В диалоговом окне Добавление в поле Имя таблицы выберите имя архивной таблицы и нажмите кнопку ОК.

        Добавление записей в таблицу

        В бланке запроса отобразится строка Добавление записей в таблицу.

      3. Очистите строку Добавление записей в таблицу для полей, используемых для задания условий. (Значение Добавление записей в таблицу должно быть задано только для звездочки.)

        Строка "Добавление записей в таблицу" бланка запроса

    • Если архивная таблица не создана, для создания архивной таблицы с указанными записями требуется запрос на создание таблицы.

      1. На вкладке Структура в группе Тип запроса нажмите кнопку Создание таблицы.

      2. В диалоговом окне Создание таблицы в поле Имя таблицы введите имя архивной таблицы и нажмите кнопку ОК.

  7. Нажмите CTRL+S, чтобы сохранить запрос.

Действие 3. Создание запроса на удаление, который удаляет те же данные из исходной таблицы

  1. На вкладке Создание в группе Другие нажмите кнопку Конструктор запросов.

  2. С помощью диалогового окна Добавление таблицы добавьте таблицу, записи которой требуется заархивировать. Закройте диалоговое окно Добавление таблицы.

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

  4. В окне конструктора запросов дважды щелкните те же поля, которые использовались для задания условия в запросе на добавление.

  5. Используйте строку условия для укажите условия для полей, которые вы только что добавили. Дополнительные сведения об использовании критериев читайте в статье Примеры условий запроса.

    Важно: При использовании параметра запроса на добавление или создание таблицы это должны запрос на удаление. Кроме того необходимо убедиться, введите то же значение для обоих запросов. Если ввести разные значения параметров могут быть потеряны данные. Чтобы предотвратить потерю данных, рекомендуется собирать значения с помощью формы и выполнение запросов попросите формы для ввода значений. Для получения дополнительных сведений обратитесь к статье Настройка запроса данных для запроса.

  6. На вкладке Конструктор в группе Тип запроса щелкните элемент Удалить.

    В форме запроса появится строка Удалить.

    Строка "Удалить" бланка запроса

  7. Нажмите CTRL+S, чтобы сохранить запрос.

Действие 4. Создание макроса, выполняющего оба запроса

  1. На вкладке Создание в группе Другие выберите Макрос. Если эта команда недоступна, нажмите стрелку под кнопкой Модуль или Модуль класса, а затем нажмите кнопку Макрос.

  2. В первой строке бланка макроса в столбце Макрокоманда выберите пункт ОткрытьЗапрос.

    Макрокоманда "Открыть запрос"

  3. В нижней части формы в разделе Аргументы макрокоманды в поле Имя запроса выберите из раскрывающегося списка запрос на добавление или создание таблицы, созданный ранее (действие 2).

    Макрокоманда "Открыть запрос", аргумент "Запрос"

  4. Во второй строке бланка макроса в столбце Макрокоманда выберите пункт ОткрытьЗапрос.

  5. В нижней части формы в разделе Аргументы макрокоманды в поле Имя запроса выберите из раскрывающегося списка запрос на удаление.

    Макрос должен выглядеть следующим образом:

    Макрос, готовый к сохранению

  6. Чтобы сохранить макрос, нажмите клавиши CTRL+S.

    Запускайте этот макрос, когда необходимо заархивировать записи.

К началу страницы

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

Если всегда требуется архивировать все данные в таблице, необязательно использовать запросы или макросы. В качестве альтернативы можно периодически заменять таблицу пустой копией.

Важно: Если таблицы, можно архивировать связана с другими таблицами, при необходимости можно обойти целостности данных.

  1. В области переходов выберите таблицу, которую требуется заархивировать, и нажмите клавиши CTRL+C, а затем — CTRL+V.

  2. В разделе Параметры вставки диалогового окна Вставка таблицы выберите пункт Только структура и нажмите кнопку ОК.

    Access имена копия исходное имя таблицы"Копировать".

  3. В области переходов щелкните правой кнопкой мыши исходную таблицу и выберите в контекстном меню пункт Переименовать.

    Присвойте таблице имя, указывающее на то, что она содержит, например "ЕжедневныеПоказанияТемператур_архив_2007".

  4. В области переходов щелкните правой кнопкой мыши пустую копию и выберите в контекстном меню пункт Переименовать.

    Присвойте пустой копии имя исходной таблицы.

К началу страницы

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

При использовании разделенной базы данных можно периодически заменять все таблицы путем замены базы данных с таблицами пустой копией.

Прежде всего создайте пустую копию. Если структура базы данных не изменяется, можно повторно использовать эту копию при каждой архивации. При архивации необходимо переименовать существующую базу данных с таблицами, чтобы указать, что она является архивной, и сохранить пустую копию в качестве новой базы данных с таблицами.

Подготовка пустой копии базы данных с таблицами

Импортируйте определения таблиц для всех таблиц в базе данных с таблицами.

  1. Создайте новую пустую базу данных. Удалите таблицу 1.

  2. На вкладке Внешние данные в группе Импорт щелкните Access.

  3. В диалоговом окне Внешние данные выберите пункт Импорт таблиц, запросов, форм, отчетов, макросов и модулей в текущую базу данных и нажмите кнопку Обзор.

  4. В диалоговом окне Открытие файла выберите файл базы данных с таблицами. Нажмите кнопку Открыть, чтобы закрыть диалоговое окно Открытие файла, а затем — кнопку ОК.

  5. В диалоговом окне Импорт объектов нажмите кнопку Параметры.

  6. В разделе Импорт таблиц выберите пункт Только структура.

  7. На вкладке Таблицы щелкните элемент Выделить все, нажмите кнопку ОК и кнопку Закрыть.

Затем добавьте данные всех таблиц подстановки в пустую копию. Для каждой таблицы подстановки выполните указанные ниже действия.

  1. Создайте связь с таблицей подстановки в существующей базе данных с таблицами.

  2. Создайте запрос на добавление, добавляющий все записи из исходной таблицы в копию.

Замените базу данных с таблицами пустой копией.

Прежде всего переименуйте существующую базу данных с таблицами, чтобы указать, что она является архивной.

Затем откройте пустую копию и сохраните ее под именем исходной базы данных с таблицами.

  1. Нажмите Кнопку Microsoft Office Изображение кнопки Office и выберите команду Сохранить как. Открытие меню " Сохранить как ".

  2. В разделе Сохранить базу данных в другом формате выберите пункт База данных Access 2007.

К началу страницы

Совершенствование навыков работы с Office
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×