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

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

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

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

В этой статье

Обзор

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

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

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

Обзор

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

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

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

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

Способ

Описание

Использование When...

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

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

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

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

  • Может потребоваться обойти _з0з_, особенно если записи, которые вы хотите архивировать, находятся на одной стороне _з1з_.

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

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

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

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

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

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

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

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

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

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

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

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

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

    - или -

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

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

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

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

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

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

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

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

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

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

Сначала нужно создать пустую копию таблицы, которая содержит записи, которые вы хотите архивировать. Это новая пустая таблица — архивная таблица. Затем создайте _з0з_ для копирования записей из исходной таблицы в архивную таблицу. Затем создайте _з1з_ , чтобы удалить архивированные записи из исходной таблицы. Наконец, создайте макрос, выполняющий оба запроса. Если вы хотите архивировать записи, запустите макрос.

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

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

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

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

Шаг 4: Создание макроса, запускающего оба запроса

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

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

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

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

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

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

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

  3. В поле имя таблицы удалите слова копия и добавьте знак подчеркивания и слово "Archive", а затем нажмите кнопку ОК. Например, если исходная таблица называется Transactions , архивная таблица называется трансактионс_арчиве.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    В бланке запроса появится строка Delete (удалить ).

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

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

Шаг 4: Создание макроса, запускающего оба запроса

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

  2. В первой строке бланка макроса в столбце Action (действие ) выберите OPENQUERY.

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

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

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

  4. Во второй строке бланка макроса в столбце Action (действие ) выберите OPENQUERY.

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

    Макрос должен выглядеть примерно так:

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

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

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

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

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

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

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

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

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

    Access Name копирует копию исходного имени таблицы.

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

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

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

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

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

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

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

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

ПодГотовьте пустую копию базы данных с таблицами.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Нажмите кнопку Microsoft Office_з0з_, а затем наведите указатель мыши на команду Сохранить как. Откроется меню " Сохранить как ".

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

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

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

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

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

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

×