Створення та виконання запиту на видалення
Applies ToAccess для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

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

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

Увага!: Інформація в цій статті призначена для використання виключно з локальними базами даних. У веб-програмах Access не можна використовувати запити на видалення або оновлення.

У цій статті

Вибір типу запиту

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

Тип запиту

Призначення

Результати

Запит на видалення

Використовується для видалення цілих записів (рядків) з таблиці або кількох пов’язаних таблиць одночасно.

Примітка.: Якщо записи розташовано на боці зв'язку "один" зв'язку "один-до-багатьох", можливо, знадобиться змінити зв'язок, перш ніж виконувати запит на видалення. Див. розділ про видалення даних із пов'язаних таблиць.

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

Запит на оновлення

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

Полегшує видалення значень, оновлюючи наявні значення або до Null-значення (тобто дані відсутні), або до рядка з нульовою довжиною (пара подвійних лапок без пробілу між ними).

На початок сторінки

Перевірки перед використанням запиту для видалення даних

  • Переконайтеся, що файл не призначено лише для читання.

    1. Клацніть правою кнопкою миші кнопку Пуск і виберіть пункт Відкрити Провідник Windows.

    2. Клацніть файл бази даних правою кнопкою та виберіть пункт Властивості.

    3. Подивіться, чи не вибрано атрибут Лише читання.

  • Переконайтеся, що ви маєте необхідні дозволи на видалення записів із бази даних. Якщо ви не впевнені, зверніться до свого системного адміністратора або розробника бази даних.

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

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

  • Перед редагуванням або видаленням записів рекомендуємо створити резервну копію бази даних на випадок, якщо буде потрібно скасувати зміни.

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

Відкриття бази даних у режимі монопольного доступу

  1. Клацніть вкладку Файл і виберіть пункт Відкрити.

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

    Відкриття файлу в монопольному режимі

Резервне копіювання бази даних

  1. Клацніть вкладку Файл і наведіть вказівник на пункт Зберегти як.

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

  3. Виберіть пункт Зберегти як і вкажіть ім’я та розташування резервної копії, а потім натисніть кнопку Зберегти.

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

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

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

Щоб створити запит на видалення, відкрийте вкладку Створити й у групі Запити натисніть кнопку Макет запиту. Двічі клацніть кожну таблицю, з якої потрібно видалити записи, і натисніть кнопку Закрити.

Таблиця відобразиться у вигляді вікна у верхній частині сітки макета запиту. У списку полів двічі клацніть зірочку (*), щоб додати всі поля в таблиці до сітки макета запиту.

Використання спеціальних умов у запиті на видалення

Увага!: Використовуйте умови, щоб повернути лише записи, які потрібно видалити. Інакше запит на видалення видаляє кожний запис у таблиці.

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

Приклад використання цього параметра. Припустімо, потрібно видалити всі відкладені замовлення для клієнта. Щоб знайти лише ці записи, потрібно додати поля "Ідентифікатор клієнта" та "Дата замовлення" до сітки макета запиту, а потім ввести ідентифікаційний номер клієнта та дату, коли замовлення цього клієнта стали недійсними.

  1. На вкладці Конструктор виберіть пункт Подання, а потім – пункт Подання таблиці.

  2. Переконайтеся, що запит повертає записи, які потрібно видалити, а потім натисніть сполучення клавіш Ctrl+S, щоб зберегти запит.

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

На початок сторінки

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

Примітка.: Параметр запиту на оновлення не можна використовувати у веб-програмі Access.

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

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

  2. Виберіть таблицю, з якої потрібно видалити дані, (якщо таблиця пов’язана, виберіть таблицю на боці зв’язку "один"), натисніть кнопку Додати, а потім – кнопку Закрити.

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

  3. Двічі клацніть зірочку (*), щоб додати всі поля в таблиці до сітки макета запиту. Якщо додати всі поля таблиці, це дасть змогу запиту на видалення видаляти цілі записи (рядки) з таблиці.

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

    Примітка.: Умови використовуються, щоб повернути лише записи, які потрібно змінити. В іншому випадку запит на оновлення встановлює Null-значення для кожного запису в кожному з полів запиту.

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

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

  6. За потреби повторіть кроки 3–5 і змініть поля або умови, доки запит не поверне лише ті дані, які потрібно видалити, а потім натисніть клавіші Ctrl+S, щоб зберегти запит.

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

На початок сторінки

Додаткові відомості

Видалення даних із пов’язаних таблиць

Щоб видалити дані з кількох пов’язаних таблиць, для кожного зв’язку потрібно ввімкнути параметри Застосувати цілісність посилань і Каскадне видалення пов’язаних полів. Це надає запиту можливість видаляти дані з таблиць на обох боках зв’язку: "один" і "багато". Перед видаленням пов’язаних даних потрібно перевірити перелічене нижче.

  • Визначте, які запити розташовано на боці зв’язку "один", а які – на боці "багато".

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

  • Якщо потрібно видалити записи лише на боці зв’язку "один", необхідно спочатку видалити цей зв’язок, а потім видалити дані.

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

Щоб дізнатися, які записи розташовано на сторонах зв'язку "один" і "багато", на вкладці Знаряддя бази даних у групі Зв'язки натисніть кнопку Зв'язки. На вкладці Зв’язки відобразяться таблиці в базі даних і зв’язки між ними. Кожний зв’язок показано як лінію, що з’єднує таблиці між полями.

Рисунок нижче показує типовий зв’язок. Більшість зв’язків у базі даних, якщо не всі, мають бік "один" і бік "багато". На схемі зв’язку бік "один" позначено числом (1), а бік "багато" – знаком нескінченності ().

Зв’язок між двома таблицями

Якщо ви видаляєте записи на боці зв’язку "один", ви також видаляєте пов’язані записи на боці зв’язку "багато". Однак, якщо ви видаляєте записи на боці зв’язку "багато", ви зазвичай не видаляєте записи на боці "один".

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

Змінення зв’язку

Виконуйте ці кроки, лише коли потрібно видалити дані на обох боках зв’язку ("один" і "багато").

  1. На вкладці Знаряддя бази даних у групі Зв’язки натисніть кнопку Зв’язки.

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

  3. У діалоговому вікні Редагування зв’язків переконайтеся, що встановлено прапорець Застосувати цілісність посилань.

  4. Установіть прапорець Каскадне видалення пов’язаних полів.

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

  5. Натисніть кнопку OK, закрийте область Зв’язки та перейдіть до наступних кроків.

Видалення зв’язку

  1. Відкрийте область Зв’язки, якщо її ще не відкрито.

  2. На вкладці Знаряддя бази даних у групі Зв’язки натисніть кнопку Зв’язки.

    Занотуйте поля, між якими встановлено зв’язок, щоб потім відновити цей зв’язок після видалення даних.

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

Примітка.: Щоб відновити зв’язок, виконайте описані вище кроки для відкриття області Зв’язки, а потім перетягніть поле первинного ключа з таблиці "один" на зовнішній ключ таблиці "багато". Відобразиться діалогове вікно Редагування зв’язків. Якщо до старого зв’язку застосовувалася цілісність посилань, установіть прапорець Застосувати цілісність посилань і натисніть кнопку Створити. В іншому випадку просто натисніть кнопку Створити.

На початок сторінки

Зразки умов для вибіркових запитів

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

Умови

Вплив

> 234

Повертає всі числа, більші за 234. Для пошуку всіх чисел, менших за 234, укажіть умову < 234.

>="Київ"

Повертає всі записи від запису Київ до кінця алфавіту.

Between #2.2.2010# And #12.1.2010#

Повертає дати від 2 лютого 2010 до 1 грудня 2010 (ANSI-89). Якщо в базі даних використовується набір символів узагальнення ANSI-92, замість знаків фунта (#) вводьте одинарні лапки ('). Наприклад: Between '02.02.2010' And '01.12.2010'.

Not "Німеччина"

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

Not "Т*"

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

Not "*т"

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

In(Канада,Сполучене королівство)

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

Like "[A-Д]*"

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

Like "*но*"

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

Like "Богдан Лева?"

Знаходить усі записи, які починаються зі слова "Богдан", а також містять другий рядок із 5 символів, у якому перші чотири букви – це "Лева", а остання буква невідома. Якщо база даних використовує набір символів узагальнення ANSI-92, замість знака питання (?) вводьте символ підкреслення (_).

#02.02.2010#

Знаходить усі записи для 2 лютого 2010 року. Якщо в базі даних використовується набір символів узагальнення ANSI-92, введіть дату в одинарних лапках замість знаків фунта ('02.02.10').

< Date() - 30

Використовує функцію Date, щоб повернути всі дати, раніші від 30 днів тому.

Date()

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

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

Використовує функції Date і DateAdd, щоб повернути всі записи між сьогоднішньою датою та трьома місяцями від сьогоднішньої дати.

Is Null

Повертає всі записи, які містять Null-значення (пусте або невизначене).

Is Not Null

Повертає всі записи, які містять будь-яке значення (не Null-значення).

""

Повертає всі записи, які містять рядок нульової довжини. Рядки нульової довжини використовуються, якщо потрібно додати значення до обов’язкового поля, але фактичне значення ще невідоме. Наприклад, в обов’язковому полі потрібно вказати номер факсу, але в деяких клієнтів немає факсів. Тоді замість числа вводяться подвійні лапки без пробілу між ними ("").

На початок сторінки

Поради з виправлення неполадок

Чому я бачу це повідомлення про помилку, і як виправити цю помилку?

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

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

  1. Відкрийте запит на видалення в режимі конструктора.

  2. Якщо вікно властивостей запиту не відкрито, натисніть клавішу F4, щоб відкрити його.

  3. Клацніть конструктор запиту, щоб відобразити властивості запиту (а не поля).

  4. У вікні властивостей запиту знайдіть властивість Унікальні записи та встановіть для неї значення Так.

Припинення блокування запиту в неактивному режимі

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

Якщо після виконання запиту на змінення результати не відображаються, перевірте наявність такого повідомлення в рядку стану програми Access:

Неактивний режим заблокував цю дію або подію.

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

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

На початок сторінки

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

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