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

Важно :  Данная статья переведена с помощью машинного перевода, см. Отказ от ответственности. Используйте английский вариант этой статьи, который находится здесь, в качестве справочного материала.

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

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

В этой статье

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

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

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

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

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

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

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

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

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

Метод

Описание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    - или -

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если требуется удалять старую архивную таблицу при создании новой, это действие выполнять не нужно. Для копирования данных в архивную таблицу можно использовать запрос на создание таблицы вместо запроса на добавление. Чтобы сделать это, перейдите к действию 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.

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

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

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

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

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

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

×