Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД и дел-во.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
465.92 Кб
Скачать
  1. Microsoft Access. Модифицирующие запросы (добавление).

Запрос на добавление добавляет набор записей (строк) из одной или нескольких исходных таблиц (или запросов) в одну или несколько результирующих таблиц. Обычно исходные таблицы и конечная таблица находятся в одной и той же базе данных, но это не обязательно. Например, появилось несколько новых клиентов, а также база данных, содержащая сведения о них. Чтобы не вводить новые данные вручную, их можно добавить в соответствующую таблицу имеющейся базы данных. Можно также использовать запросы на добавление при выполнении следующих действий.

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

  • Добавление записей, когда некоторых полей одной таблицы не существует в другой. Допустим, в таблице «Заказчики» пользователя имеется 11 полей, тогда как в таблице «Клиенты» другой базы данных из этих 11 полей имеется только 9. Можно использовать запрос на добавление только тех данных, которые находятся в соответствующих друг другу полях, а все остальные игнорировать.

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

  1. Microsoft Access. Модифицирующие запросы (удаление).

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

Если две таблицы связаны отношением "один-ко-многим", нельзя удалять записи из таблицы "один" если в таблице "многие" присутствуют соответствующие им записи. Сначала должны быть удалены записи в таблице "многие" и только потом — соответствующие им записи в таблице "один". Для того чтобы упростить этот процесс, Access позволяет при определении связей между таблицами установить флажок каскадное удаление связанных. Такой флажок установлен, например, для связи таблиц "Заказы" и "Заказано". Действительно, если требуется удалить из базы данных какой-то заказ, должны быть удалены не только запись об этом заказе в таблице "Заказы", но ч все позиции данного заказа в таблице "Заказано".

Для создания запроса на удаления мы воспользуемся уже имеющимся запросом на добавление записей "Копирование заказов".

Откройте этот запрос в режиме Конструктора.

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

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

Сохраните запрос, дав ему имя: Удаление заказов.

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