Створення та виконання запиту на оновлення

За допомогою запиту на оновлення в базах даних Access можна додавати, змінювати та видаляти дані в наявних записах. Запити на оновлення можна розглядати як різновид діалогового вікна Пошук та заміна з більш широкими можливостями. Запит на оновлення не можна використовувати для додавання нових записів до бази даних або їх видалення.

Для додавання нових записів використовується запит на додавання, для видалення записів запит на видалення.

Примітка: Стаття не застосовується до веб-застосунків Access — нового типу баз даних, які створюються в Access і публікуються в Інтернеті.

В цій статті

Нижче наведено подібності та відмінності між функцією "Пошук та заміна" та запитом на оновлення

Як і у діалоговому вікні Пошук та заміна, у запиті на оновлення можна вказати значення, яке потрібно замінити, а також нове значення.

На відміну від функції Пошук та заміна, запит на оновлення дозволяє:

використовувати умови, які не залежать від значення, що замінюється;

оновлювати кілька записів за один раз;

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

Обмеження оновлення полів

Запит на оновлення не можна використовувати для оновлення даних у полях наведених нижче типів.

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

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

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

Поля у запитах унікальних значень та унікальних записів. Значення у таких запитах сумуються. Деякі значення є одним записом, інші — кілька. Оновити ці значення неможливо, тому що не можна визначити, які записи були виключені як такі, що повторюються. Це обмеження поширюється і на запити на оновлення, і оновлення даних вручну шляхом введення значень у форму або таблицю.

Поля у запиті на об'єднання. Дані з полів у запиті на об'єднання неможливо оновити, тому що кожен запис, який міститься у двох або більше джерелах даних, з'являється у результатах запиту на об'єднання лише один раз. Оскільки деякі записи, що повторюються, видаляються з результатів, Access не може оновити всі необхідні записи.

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

Примітка: При каскадному оновленні Access автоматично оновлює значення зовнішнього ключа при зміні первинного ключа в батьківській таблиці.

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

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

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

Створення резервної копії бази даних

Праворуч у розділі Розширена установка клацніть Створити резервну копію бази даних.

У діалоговому вікні Зберегти резервну копію вкажіть ім'я та розташування резервної копії та натисніть кнопку Зберегти.

Access закриє вихідний файл, створить резервну копію і знову відкриє його.

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

У цьому розділі

Етап 1. Створення запиту на вибірку для визначення записів, що оновлюються.

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

На вкладці Створення групи Запити натисніть кнопку Конструктор запитів. Якщо ви використовуєте Access 2007, на вкладці Створення в групі Інші натисніть кнопку Конструктор запитів.

Відкриється конструктор запитів та діалогове вікно Додавання таблиці.

Відкрийте вкладку Таблиці.

Перейдіть до однієї або декількох таблиць із записами, які потрібно оновити, і натисніть кнопку Додати, а потім — Закрити.

Таблиці з'являться в одному або кількох вікнах конструктора запитів. У цих вікнах будуть вказані усі поля кожної таблиці. На малюнку показано, як виглядає конструктор запитів із типовою таблицею.

оновлення

1. Таблиця у вікні конструктора запитів

2. Бланк запиту

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

Для кожного стовпця в бланку запиту можна додати поле таблиці.

Щоб швидко додати всі поля до таблиці, двічі клацнітьзірочку (*) у верхній частині списку полів таблиці у вікні таблиці. На малюнку показано бланк запиту з усіма доданими полями.

запиту

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

Таблиця прикладів умов

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

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

Повертає всі числа більше 234. Щоб знайти всі числа менше 234, використовуйте умову = "Новосибірськ"

Повертає всі записи від "Новосибірська" до кінця алфавіту.

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

Знаходить усі записи, крім тих, що починаються з літери "Т". Якщо в базі даних застосовуються знаки підстановки ANSI-92, використовуйте знак відсотка ( %) замість зірочки ( *).

Знаходить усі записи, які закінчуються буквою " т " . Якщо в базі даних застосовуються знаки підстановки ANSI-92, використовуйте знак відсотка (%) замість зірочки (*).

Знаходить усі записи зі списку зі словами "Канада" або "Великобританія".

У текстовому полі виконується пошук усіх записів, які починаються однією з перших чотирьох літер алфавіту (А-Г). Якщо в базі даних застосовуються знаки підстановки ANSI-92, використовуйте знак відсотка (%) замість зірочки (*).

Знаходить усі записи, що містять поєднання букв "тр". Якщо у базі данихзастосовуються знаки підстановки ANSI-92, використовуйте знак відсотка (%) замість зірочки (*).

Like "Григорій Верни?"

Знаходить усі записи, що починаються з імені "Григорій" і містять другий рядок з 9 букв, з яких 6 букв складають початок прізвища "Вірний", а остання невідома. Якщо в базі даних застосовується набір підстановочних знаків ANSI-92, використовуйте замість знака питання ( ?) знак підкреслення ( _).

Date для повернення всіх дат щонайменше 30-денної давності.

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

Between Date( ) And DateAdd("M", 3, Date( ))

Використовує функції Date та DateAdd для повернення всіх записів між поточною датою та датою на три місяці пізніше.

Повертає всі записи, що містять порожнє (незаповнене або невизначене) значення.

Повертає всі записи, що містять пусте значення.

Повертає всі записи, які містять порожні рядки. Порожні рядки служать для додавання значень у обов'язкові поля, якщо значення невідоме, наприклад, у полі потрібно ввести номер факсу, але в деяких клієнтів його немає. У цьому випадку замість номера можна ввести пару подвійних лапок без пробілу між ними ("").

На вкладці Конструктор у групі Результати натисніть кнопку Виконати.

Переконайтеся, що запит повертає записи, які потрібно оновити.

Щоб видалити поля, які не потрібно включати до конструктора запитів, виділіть їх та натисніть клавішу DELETE.

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

Етап 2. Оновлення записів

На вкладці Конструктор у групі Тип запиту натисніть кнопку Оновити.

Виберіть поле з даними, які потрібно змінити, та введіть вираз (умовазміни) у рядку Оновлення для цього поля.

У рядку Оновлення можна використовувати будь-який допустимий вираз.

Таблиця прикладів виразів

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

У полі типу "Текст" замінює текстове значення рядком "Продавець".

У полі "Дата/час" змінює значення дати на "10-авг-17".

У полі типу "Так/Ні" змінює значення Ні на Так.

Додає літери "PN" на початок кожного вказаного інвентарного номера.

Перемножує значення полів з іменами "Ціна" та "Кількість".

Збільшує значення у полі "ВартістьДоставки" на 50 відсотків.

DSum("[Кількість] * [Ціна]", "Замовлено", "[КодТовара]=" & [КодТовара])

Якщо значення поля "КодТовара" у поточній таблиці збігається зі значенням поля "КодТовара" у таблиці "Замовлено", цей вираз оновлює підсумкові значення продажів, розраховуючи їх як добуток значень у полях "Ціна" та "Кількість". Вираз використовує функцію DSum, оскільки вона може виконувати операції з кількома таблицями та полями таблиць.

Обрізає (видаляє) ліві символи в текстовому чи числовому рядку, залишаючи п'ять правих символів.

IIf(IsNull([Ціна]), 0, [Ціна])

Замінює порожнє (невідоме або невизначене) значення нулем (0) у полі з іменем "Ціна".

На вкладці Конструктор у групі Результати натисніть кнопку Виконати.

З'явиться попереджувальне повідомлення.

Для виконання запиту та оновлення даних натисніть кнопку Так.

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

Оновлення даних в одній таблиці даними з іншої таблиці

При оновленні даних в одній таблиці даними з іншої необхідно дотримуватись основного правила: типи даних вихідного та цільового полів повинні збігатися або бути сумісними.

Крім того, при оновленні даних в одній таблиці даними з іншої та використання сумісних типів даних замість збігаються програма Access перетворює типи даних цих полів у цільовій таблиці. В результаті, деякі дані в цільових полях можуть обрізатися (видалятися). У розділі Обмеження перетворення типів даних наведено випадки, коли можна або не можна виконувати перетворення типів даних. Також у цьому розділі наведено таблицю, яка демонструє, коли перетворення типу даних може призвести до зміни або видалення всіх або деяких даних у полі, а також які дані можуть видалятися.

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

Створення запиту на оновлення та додавання до нього вихідної та цільової таблиць.

Об'єднання цих таблиць по полях, що містять пов'язані відомості.

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

Додавання імен вихідних полів у рядок Оновлення бланка запиту за допомогою наступного синтаксису: [ вихідна_таблиця].[вихідне_поле ].