Архівування даних Access

Щоб підтримувати дані в порядку, слід періодично архівувати застарілі або неактивні записи. Наприклад, припустімо, що програма Access використовується для керування бібліотекою. У вас є таблиця, у якій відстежуються транзакції бібліотеки, з полем, у якому вказується дата видачі матеріалів, і полем, у якому вказується дата повернення матеріалів. Політика збереження записів може передбачати архівування записів про транзакції бібліотеки через рік після повернення матеріалів і знищення записів через два роки.

Можна архівувати всі таблиці в базі даних, окремі таблиці або лише окремі записи, наприклад записи, створені до певної дати. У цьому розділі описано способи архівування даних.

У цій статті

Огляд

Періодичне переміщення записів до архівної таблиці

Періодична заміна таблиці

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

Огляд

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

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

Способи архівування даних

У наведеній нижче таблиці наведено способи архівування даних, умови використання кожного методу та інші відомості.

Метод

Опис

Умови використання

Інші відомості

Періодичне переміщення записів до архівної таблиці

Періодично запускайте запит, що вибирає дані, які потрібно архівувати, і додає їх до архівної таблиці. Потім запускайте запит, що вибирає такі самі дані (з вихідної таблиці) і видаляє їх.

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

ПРИКЛАД. Вам потрібно архівувати транзакції бібліотеки (взяття на редагування), якщо після дати повернення минув принаймні один рік.

  • Можливо, доведеться вирішувати проблему цілісність зв’язків, особливо якщо записи, які потрібно архівувати, – це сторона «один» зв’язок "один-до-багатьох".

  • Якщо в запитах потрібно використовувати параметризований запит, слід створити форму для обробки параметрів. Інакше ви ризикуєте втратити дані.

Періодична заміна таблиці

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

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

ПРИКЛАД. У вас є таблиця, у якій зберігаються щоденні екстремальні значення температур. Щороку ви архівуєте таблицю та починаєте заповнювати нову.

  • Можливо, доведеться вирішувати проблему посилальних обмежень цілісності.

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

Спочатку створіть розділену базу даних (база даних, що складається з файлу серверної бази даних, який містить усі таблиці, і файлу клієнтської бази даних, який містить усі інші об’єкти бази даних). Періодично створюйте архівну копію серверної бази даних, а потім замінюйте серверну базу даних на нову, пусту базу даних.

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

ПРИКЛАД. Ваша база даних складається з кількох таблиць, що містять різні види метеорологічних даних. Щороку ви архівуєте всі ці таблиці.

  • Якщо у вас є таблиці підстановки (таблиці, що використовуються для зберігання значень для підстановки, наприклад поштових індексів або відділів), можливо, доведеться імпортувати дані з них до нової серверної бази даних.

  • У цьому методі не можна використовувати макрос. Базу даних слід архівувати вручну.

Вирішення проблеми посилальних обмежень цілісності

Якщо записи, які потрібно архівувати, пов’язані з записами в інших таблицях, можливо, доведеться вирішувати проблему зв'язку. Якщо записи, які потрібно архівувати, – це «дочірні» записи (сторона «багато» зв’язок "один-до-багатьох"), можливо, їх удасться надійно архівувати без проблем. Якщо записи, які потрібно архівувати, – це «батьківські» записи (сторона «один» зв’язок "один-до-багатьох"), під час архівування їхні пов'язані «дочірні» записи можуть:

  • завадити видаленню «батьківських» записів. Це може спричинити проблеми, якщо «батьківські» записи вже додано до архівної таблиці;

    або

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

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

  1. Визначте, які «дочірні» записи належать до записів, що потрібно архівувати. Наприклад, якщо вам потрібно архівувати записи бібліотечних матеріалів, що надаються в користування, слід спочатку визначити, чи існують відкриті транзакції для цих матеріалів, тобто чи є матеріали, які було взято на редагування й не повернуто.

  2. Виконайте одну з таких дій:

Вгорі сторінки

Періодичне переміщення записів до архівної таблиці

Спочатку створіть пусту копію таблиці, записи з якої потрібно архівувати. Ця нова пуста таблиця слугуватиме архівною таблицею. Потім створіть запит на додавання, щоб скопіювати записи з вихідної таблиці до архівної таблиці. Після цього створіть запит на видалення, щоб видалити архівні записи з вихідної таблиці. Наприкінці створіть макрос для запуску обох запитів. Запускайте макрос, коли потрібно архівувати записи.

Порада : Макрос можна додати до кнопки форми, щоб запускати його натисканням кнопки.

Крок 1. Створення архівної таблиці

Крок 2. Створення запиту, що копіює дані до архівної таблиці

Крок 3. Створення запиту на видалення, що видаляє ідентичні дані з вихідної таблиці

Крок 4. Створення макросу, що запускає обидва запити

Крок 1. Створення архівної таблиці

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

Якщо потрібно знищити стару архівну таблицю після створення нової, не виконуйте цей крок. Щоб скопіювати дані до архівної таблиці, можна скористатися запит на створення таблиці замість запиту на додавання. Для цього перейдіть одразу до кроку 2.

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

Примітка : Якщо ви щоразу створюєте нову архівну таблицю та зберігаєте стару, старий архів необхідно перейменувати, перш ніж запускати запити.

  1. В області переходів виберіть таблицю, записи якої потрібно архівувати, натисніть сполучення клавіш Ctrl+C, а потім – сполучення клавіш Ctrl+V.

  2. У діалоговому вікні Вставлення таблиці в розділі Параметри вставлення виберіть пункт Лише структура.

  3. У полі Ім’я таблиці видаліть слово Копія, додайте символ підкреслення та слово «архів» до наявного імені таблиці, а потім натисніть кнопку ОК. Наприклад, якщо ім’я вихідної таблиці – Транзакції, архівна таблиця називатиметься Транзакції_архів.

    Вставлення таблиці

Крок 2. Створення запиту, що копіює дані до архівної таблиці

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

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

  3. У вікні конструктора запитів двічі клацніть зірочку (*) в таблиці, яку ви щойно додали. Ім’я таблиці з зірочкою з’явиться в першому стовпці бланка запиту.

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

  4. У вікні конструктора запитів двічі клацніть поле, яке потрібно використовувати для визначення умови, якій мають відповідати записи перед архівуванням. Наприклад, якщо таблиця «Транзакції» містить поле «Дата повернення», а вам потрібно архівувати всі записи, у яких після цієї дати минуло більше одного року, двічі клацніть поле «Дата повернення». Поле з’явиться в наступному пустому стовпці бланка запиту.

    Конструктор запиту

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

  5. У рядку Критерії вкажіть умови для щойно доданих полів. Наприклад, можна вказати, що «Дата повернення» має передувати 1 січня 2008 року, за допомогою виразу <#1.01.2008# у рядку Критерії.

    Якщо значення умов змінюються під час кожного архівування, слід створити параметризований запит. Для цього слід застосувати параметр у рядку Критерії, щоб під час виконання запиту відображалося вікно для введення даних. Параметр можна застосувати за допомогою виразу, звичайним способом, але замість указаного значення слід використовувати коротке запитання, взяте у квадратні дужки. Наприклад, вираз <[Архівні транзакції, виконані до:] можна використовувати так:

    Вираз параметра

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

    Також можна вказати альтернативні умови в рядку або. Щоб отримати додаткові відомості про використання умов, див. статтю Приклади критеріїв запиту або Відео: визначення умов для текстового поля.

    Порада : Якщо для визначення умов використовується поле дати, а вам потрібно архівувати всі записи, створені до поточної дати, введіть <Дата() в рядку Критерії для поля дати.

  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 Зображення кнопки і виберіть пункт Зберегти як. Відкриється меню Зберегти як.

  2. У розділі Зберегти базу даних в іншому форматі виберіть пункт База даних 2007.

Вгорі сторінки

Отримуйте нові функції раніше за інших
Приєднайтеся до оцінювачів Office

Ця інформація корисна?

Дякуємо за ваш відгук!

Дякуємо за відгук! Схоже, вам може стати в нагоді допомога одного з наших спеціалістів служби підтримки Office, з яким ми вас можемо з’єднати.

×