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

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

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

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

Важно: Эта статья относится только к базам данных рабочего стола. Запросы на удаление и обновление невозможно использовать в веб-приложениях Access.

В этой статье

Выбор типа запроса

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

Тип запроса

Когда использовать

Результаты

Запрос на удаление

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

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

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

Запрос на обновление

Удаление отдельных полей из таблицы.

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

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

Что необходимо проверить перед использованием запроса на удаление любых данных

  • Убедитесь, что файл не открыт в режиме только для чтения.

    1. Щелкните правой кнопкой мыши кнопку Пуск и откройте проводник Windows.

    2. Щелкните файл базы данных правой кнопкой мыши и выберите пункт Свойства.

    3. Проверьте, не выбран ли параметр Только для чтения.

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

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

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

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

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

Открытие базы данных в монопольном режиме

  1. Откройте вкладку Файл и выберите пункт Открыть.

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

    Открытие файла в монопольном режиме

Создание резервной копии базы данных

  1. Откройте вкладку Файл и выберите пункт Сохранить как.

  2. В разделе Сохранить базу данных как выберите пункт Резервная копия базы данных. Приложение Access закроет исходный файл, создаст резервную копию и снова его откроет.

  3. Нажмите кнопку Сохранить как и укажите имя и расположение для резервной копии, а затем нажмите кнопку Сохранить.

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

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

Использование запроса на удаление

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

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

Использование специальных условий в запросе на удаление

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

Дважды щелкните поле, которое нужно указать в качестве условий удаления, введите одно условие в строке Условия конструктора запросов, а затем снимите флажок Показать для каждого поля условия.

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

  1. На вкладке Конструктор выберите команду Режим > Режим таблицы.

  2. Убедитесь, что выбраны записи, которые требуется удалить, а затем нажмите клавиши CTRL+S, чтобы сохранить запрос.

  3. Для выполнения запроса дважды щелкните его в области навигации.

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

Использование запроса на обновление

Примечание: Запросы на обновление невозможно использовать в веб-приложениях Access.

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

  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 #02.02.2010# And #12.01.2010#

Выбирает даты между 2-фев-2010 и 1-дек-2010 (ANSI-89). Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо знака решетки (#) одинарные кавычки ('). Пример: Between '02.02.2010' And '12.01.2010'.

Not "Германия"

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

Not "Т*"

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

Not "*т"

Находит все записи, которые не оканчиваются буквой "т". Если в базе данных применяются подстановочные знаки ANSI-92, используйте знак процента (%) вместо звездочки (*).

In(Канада,Великобритания)

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

Like "[А-Г]*"

Находит в поле с типом данных "Текстовые" все записи, начинающиеся с букв "А–Г". Если в базе данных используются подстановочные знаки ANSI-92, используйте знак процента (%) вместо знака звездочки (*).

Like "*ар*"

Находит все записи, которые содержат сочетание букв "тр". Если в базе данных применяются подстановочные знаки ANSI-92, используйте знак процента (%) вместо звездочки (*).

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

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

#2.2.2010#

Находит все записи для 2 февраля 2010 г. Если в базе данных используются подстановочные знаки ANSI-92, необходимо заключить дату в одинарные кавычки вместо знаков решетки ('2.2.2010').

< Date() - 30

Использует функцию Date для возврата всех дат не менее 30-дневной давности.

Date()

Использует функцию Date для возврата всех записей, содержащих текущую дату.

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

Использует функции Date и DateAdd которые возвращают все записи между текущей датой и датой на три месяца позже.

Is Null

Возвращает все записи, содержащие пустое (незаполненное или неопределенное) значение.

Is Not Null

Выбирает все записи с любым (не пустым) значением.

""

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

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

Советы по устранению неполадок

Почему на экране может появиться это сообщение об ошибке, и как его исправить?

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

Чтобы решить эту проблему, задайте для свойства запроса Уникальные значения значение Да.

  1. Откройте запрос на удаление в конструкторе.

  2. Если окно свойств запроса не открыто, нажмите для его открытия клавишу F4.

  3. Щелкните конструктор запросов, чтобы в окне свойств отображались свойства запроса, а не свойства поля.

  4. В окне свойств найдите свойство Уникальные значения и назначьте ему значение Да.

Выполнение запроса, заблокированного из-за режима отключения содержимого

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

Если при попытке выполнения запроса на изменение ничего не происходит, проверьте, не появляется ли в строке состояния Access следующее сообщение:

Данное действие или событие заблокировано в режиме отключения.

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

  • На панели сообщений Предупреждение системы безопасности нажмите кнопку Включить содержимое и снова выполните запрос.

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

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

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

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

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