Базы данных Microsoft Access можно организовать и управлять ими, периодически архивая старые или неактивные записи. Вы можете архивировать все таблицы в базе данных, определенные таблицы или только определенные записи, например записи, которые старше определенной даты. В этой теме объясняется, как с помощью трех различных вариантов архивировать данные в базе данных Access.

В этой статье

Когда стоит архиварить?

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

Способы архивировать данные

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

Метод

Описание

Используйте, когда...

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

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

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

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

ПРИМЕР. В таблице хранится суточная температура (суточная температура). Каждый год вы архивуете таблицу и начинаете с пустой таблицы.

  • Возможно, придется обработать целостность данных. Дополнительные сведения см. в разделе "Работа над целостностью данных".

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

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

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

ПРИМЕР. База данных состоит из нескольких таблиц с разными типами ветвей. Каждый год вы архивировать все таблицы.

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

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

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

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

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

ПРИМЕР. Если дате регистрации не менее года, необходимо архивировать транзакции с библиотекой (ид.).

  • Возможно, придется поработать целостность данных, особенно если записи, которые вы хотите архивировать, находятся на стороне отношение "один-ко-многим". Дополнительные сведения см. в разделе "Работа над целостностью данных".

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

Работа над целостностью данных

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

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

    - Или -

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

Чтобы учет целостности данных учитывался, сэкономим на следующих действиях:

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

  2. Выполните одно из следующих действий:

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

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

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

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

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

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

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

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

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

    Access называет копию копией исходного имени таблицы.

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

    Указать для таблицы другое имя, например "DailyTemperatureExtremes_archive_2019".

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

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

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

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

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

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

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

  1. На вкладке "Файл" нажмите кнопку "Создать",выберите "Пустаябаза данных" и нажмите кнопку "Создать".

  2. Закроем таблицу1.

  3. На вкладке "Внешние данные" в группе "Импорт & связи" нажмите кнопку Access.

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

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

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

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

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

Добавление данных в любые таблицы подпапок в пустой копии 

Для каждой таблицы подылаемой таблицы сделайте следующее:

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

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

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

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

  1. Перейдите на вкладку "Файл" и нажмите кнопку "Сохранить базу данных как". Вам может быть предложено закрыть все открытые объекты. Если да, нажмите кнопку "ОК". Откроется диалоговое окно "Сохранить как".

  2. В окне "Сохранить в" (в верхней части диалоговое окно "Сохранить как") убедитесь, что файл сохраняется в том же месте, где и исходная архивная база данных.

  3. В поле "Имя файла" введите имя исходной задней базы данных.

  4. В поле "Тип сохранения" выберите базу данных Access (*.accdb).

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

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

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

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

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

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

Шаг 4. Создание макроса для запуска запросов на приложение и удаление

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

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

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

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

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

  2. В поле "Имя таблицы" удалите слова "Копия" и "Архив" к существующему имени таблицы и нажмите кнопку "ОК". Например, если исходная таблица называется "Транзакции", архивная таблица будет называтьсяTransactions_archive.

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

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

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

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

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

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

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

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

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

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

  5. В строке "Условия" можно задать условия для добавленных полей. Например, можно указать, что дата регистрации должна быть раньше 1 января 2019 г. с помощью выражения <#1.01.2019# в строке "Условия".

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

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

    Дополнительные сведения об использовании параметров см. в статье "Основные сведения о запросах".

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

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

  6. Выполните одно из следующих действий:

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

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

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

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

      В сетке конструктора запросов появится строка приложение".

    3. Для всех полей, которые использовались для указания критериев, очистка строки "Приложение". (Только звездочка должна иметь значение для приложения "К.")

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

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

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

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

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

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

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

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

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

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

  5. В строке "Условия" можно задать условия для добавленных полей. Дополнительные сведения об использовании условий см. в статье Примеры условий запроса.

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

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

    В сетке конструктора запросов появится строка "Удалить".

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

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

Шаг 4. Создание макроса для запуска запросов на приложение и удаление

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

  2. Щелкните стрелку вниз рядом с кнопкой "Добавить новую действие"и выберите "ОткрытьQuery".

    Появится действие OpenQuery с аргументами.

  3. В поле "Имя запроса" выберите запрос на приложение или таблицу, созданный на шаге 2.

  4. Щелкните стрелку вниз рядом с кнопкой "Добавить новую действие"и выберите "ОткрытьQuery".

    Появится действие OpenQuery с аргументами.

  5. В поле "Имя запроса" выберите запрос на удаление, созданный на шаге 3.

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

    Если вы хотите архивировать записи, запустите макрос.

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

Нужна дополнительная помощь?

Совершенствование навыков

Перейти к обучению >

Первоочередный доступ к новым возможностям

Присоединение к программе предварительной оценки Майкрософт >

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

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?

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

×