Запрос на обновление записей
Иллюстрация 8.8. Запрос на обновление записей

Прежде чем выполнять запрос на обновление, щелкните левой кнопкой мыши по стрелке на кнопке
Вид
(View) и выберите
Режим таблицы
(Datasheet View). Вы увидите все записи, которые будут обновлены, хотя данные в обновляемых полях будут еще старые. И только убедившись, что отобраны нужные записи, можно выполнять запрос.
Если такой флажок установлен, то при изменении значения первичного ключа в главной таблице Access автоматически выполняет специальный запрос, с помощью которого обновляются внешние ключи всех связанных записей в подчиненной таблице.
Убедиться в том, как работает такой запрос, можно на примере таблиц "Сотрудники" (Employees) и "Заказы" (Orders). Для этого нам придется сначала сделать копии этих таблиц и установить связь между ними:
-
Раскройте список таблиц в окне базы данных и выделите таблицу "Сотрудники".
-
Скопируйте таблицу в буфер обмена, нажав комбинацию клавиш <Ctrl>+<C>.
-
Вставьте таблицу из буфера обмена, нажав комбинацию клавиш <Ctrl>+<V>. Появится диалоговое окно
Вставка таблицы
(Paste Table As).
-
В поле
Имя таблицы
(Table Name) введите строку: Сотрудники (копия). Оставьте предлагаемое по умолчанию значение переключателя в группе
Параметры вставки
(Paste Options). Нажмите кнопку
ОК
или клавишу <Enter>. В списке появится новая таблица.
-
Выполните шаги 1—4 для таблицы "Заказы", создав таблицу "Заказы (копия)".
-
Для выполнения примера нам придется немного изменить таблицу "Заказы (копия)". Поле "КодСотрудника" в таблице "Заказы" является полем подстановки, т. е. хотя в этом поле содержатся коды сотрудников, при отображении таблицы в этом поле показываются фамилия и имя сотрудника. Мы можем временно удалить поле подстановки, чтобы видеть результаты каскадного обновления данного поля. Для этого достаточно открыть таблицу "Заказы (копия)" в режиме Конструктора, выделить строку "КодСотрудника", раскрыть в панели
Свойства поля
(Field Properties) вкладку
Подстановка
(Lookup) и установить значение свойства
Тип источника строк
(Row Source Type) равным
Поле
(Text box). Сохраните изменение.
-
Еще одно изменение потребуется ввести в таблицу "Сотрудники (копия)". Поле "КодСотрудника" в ней имеет тип
Счетчик
(AutoNumber), поэтому Access не позволит изменить значение в этом поле. Откройте эту таблицу в режиме Конструктора и замените тип данных для поля "КодСотрудника" на
Числовой
(Number).
-
Теперь нужно установить связи между новыми таблицами. Нажмите кнопку
Схема данных
(Relationships) на панели инструментов для вывода окна
Схема данных
(Relationships).
-
Нажмите кнопку
Очистить макет
(Clear Layout), чтобы очистить окно схемы данных. Подтвердите свое намерение в окне сообщения, нажав кнопку
Да
(Yes).
-
Добавьте таблицы "Сотрудники (копия)" и "Заказы (копия)" с помощью диалогового окна
Добавление таблицы
(Show Table). Для этого нажмите соответствующую кнопку на панели инструментов.
-
Чтобы установить связь "один-ко-многим" между таблицами, перетащите поле "КодСотрудника" таблицы "Сотрудники (копия)" в соответствующее поле таблицы "Заказы (копия)". Появится диалоговое окно
Изменение связей
(Edit Relationship).
-
В этом окне необходимо установить флажки
Обеспечение целостности данных
(Enforce Referential Integrity) и
каскадное обновление связанных полей
(Cascade Update Related Fields) (рис. 8.9). Нажмите кнопку ОК.
-
Закройте окно
Схема данных
(Relationships).