Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Изменение данных при помощи запросов.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
549 Кб
Скачать
☆

3. Удаление записей

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

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

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

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

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

► Чтобы создать запрос на удаление записей:

1. Создайте запрос и включитe в него таблицу, из которой следует удалить записи, и любые другие таблицы, предназначенные для определения условий отбора.

2. Выберите Удаление в меню Запрос (или нажмите кнопку "Удаление" на панели инструментов).

Заголовок окна запроса изменится на "Запрос-удаление".

3. Перенесите в бланк QBE:

  • Звездочку из списка полей таблицы, из которой следует удалить записи.

В ячейке "Удаление" под этим полем появится надпись "Из".

  • Поля для размещения условий отбора.

В ячейке "Удаление" под каждым из этих полей появится надпись "Условие".


4. Если требуется, определите условия отбора.

Совет: Пользователь может просмотреть результат выполнения запроса на удаление записей перед его фактическим выполнением и, если требуется, внести в него изменения. Для этого следует нажать кнопку "Режим таблицы" на панели инструментов. Для внесения изменений в запрос следует вернуться в режим конструктора до выполнения запроса.

5. Выберите Выполнить в меню Запрос (или нажмите кнопку "Выполнить" на панели инструментов).

На экране появится сообщение о числе удаленных записей.

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

6. Для завершения выполнения запроса и удаления записей нажмите кнопку "ОК".

Пример: Удаление старых заказов

При выполнении предыдущего примера была создана таблица "Старые заказы", а затем в нее были скопированы старые заказы. Теперь давайте удалим эти заказы из таблицы "Заказы". (Если запрос на создание таблицы из предыдущего примера не был выполнен, то пользователь не сможет восстановить записи, удаленные при выполнении данного примера).

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

  2. Выберите Удаление в меню Запрос.

  3. Перенесите звездочку и поле "Заказ" (для определения условия отбора) в бланк QBE и введите условие отбора, показанное на следующем рисунке.


  1. Для того чтобы проверить, что запрос разработан правильно, нажмите кнопку "Режим таблицы" на панели инструментов. В таблице должны быть показаны заказы с номерами, меньшими 10050.

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

  3. Для завершения выполнения запроса нажмите кнопку "OK". Microsoft Access удалит указанные записи из таблицы "Заказы".

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

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