Манипулирование данными. Языка описания запросов QBE. Создание (формирование) запросов в Mіcrosoft Access, страница 4

Активные запросы (запросы-действия)

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

Запрос на выборку можно преобразовать в запрос на создание таблицы (см. Клиент-Товар-Создать).

1. Открыть запрос в конструкторе (копия Join-Parametr – Join-Parametr-CreateTable).

2. Выбрать команду меню ЗАПРОС, СОЗДАНИЕ ТАБЛИЦЫ.

3. В окне диалога СОЗДАНИЕ ТАБЛИЦЫ указать имя таблицы и место ее хранения (текущая или иная БД).

4. При выполнении запроса запрашивается подтверждение на сохранение отобранных записей в таблицу. Уже существующая таблица будет удалена выборкой и помещением в нее новых данных.

5. Чтобы сохранить выборку в другую таблицу, следует сначала открыть запрос на создание таблицы в режиме конструктора и окне диалога СОЗДАНИЕ ТАБЛИЦЫ изменить имя таблицы.

Запрос на добавление записей аналогичен запросу на создание таблицы. Его также можно получить путем преобразования запроса на выборку. Можно преобразовать запрос на создание в запрос на обновление (см. Join-Parametr-AddRecord-Table).

Примечание. Следует отметить, что запрос на добавление может содержать меньше полей, чем в существующей таблице.

Запрос на удаление записей также рекомендуется создавать на основе запроса на выборку (преобразовать - выбрать тип запроса в меню ЗАПРОС). Достаточно указать в запросе поля, для которых задаются условия выборки. (см. Delete-Record).

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

В примере (запрос CustomShipUpdate) в главной таблице ClientsCopy заполняется поле DateShip содержимым поля CustomHistory!DateEvent.

Примечание. Следует отметить, что в примере имеется семантическая неточность – заказ содержит несколько товаров, которые могут быть отосланы в разное время. Причем, если датой исполнения заказа будет определена дата отправки последнего товара в заказе. Для устранения неточности можно дополнительно выполнить запрос ComplexCustom-Ship.

Запросы с автоподстановкой

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

Запрос с подстановкой создается для таблиц со связью «один ко многим». В запрос включается поле соединения, которое принадлежит таблице, соответствующе множественной стороне связи.

Примером служит запрос Запрос-с-подстановкой  (база Personal), в котором после занесения информации в поле новой записи idPersonal автозаполняются поля Famaly, Name1. (Заполнение или изменение полей запроса приводит к изменение полей соответствующих таблиц.)

Д.з. Создать форму, содержащую элементы список либо поле со списком для заполнения поля Position. Предусмотреть значение по умолчанию для поля DatePosition – текущая дата.

Объединение таблиц на базе сравнения

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