Applies ToAccess для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

В этой статье

Когда следует рассмотреть возможность архивации?

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

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

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

Метод

Описание

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

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

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

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

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

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

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

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

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

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

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

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

Некоторые записи в таблице соответствуют условию, которое используется для определения необходимости архивации.ПРИМЕР. Вы хотите архивировать транзакции библиотеки (проверка outs), если дата возврата не менее года.

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

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

Обход целостности ссылок

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

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

    - Или -

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

Чтобы учесть целостность ссылок, выполните следующие действия.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. Закройте Table1.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  4. В поле Тип файла выберите База данных Access (*.accdb).

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

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

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

Шаг 1. Create архивной таблицы

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

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

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

Шаг 1. Create архивной таблицы

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

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

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

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

  2. В поле Имя таблицы удалите слова Copy Of и добавьте символ подчеркивания и слово archive к имени существующей таблицы, а затем нажмите кнопку ОК. Например, если исходная таблица называется Transactions , архивная таблица называется Transactions_archive.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      Если вы не создали архивную таблицу, используйте запрос make-table, чтобы создать архивную таблицу с помощью указанных записей:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Появится действие OpenQuery , в котором отображаются его аргументы.

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

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

    Появится действие OpenQuery , в котором отображаются его аргументы.

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

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

    Чтобы архивировать записи, выполните макрос.

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

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

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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