Создание запросов на обновление таблиц
Убедиться в том, как работает такой запрос, можно на примере таблиц "Сотрудники" (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).
Рис. 8.9. Диалоговое окно Изменение связей
Для выполнения каскадного обновления:
- Откройте таблицы "Сотрудники (копия)" и "Заказы (копия)" и разместите их на экране так, чтобы были видны обе таблицы (рис 8.10).
- Отсортируйте таблицу "Заказы (копия)" по столбцу "Сотрудник". Для этого выделите данный столбец, щелкнув левой кнопкой мыши по его заголовку, и нажмите кнопку Сортировка по возрастанию (Sort Ascending) на панели инструментов.
- Измените значение в столбце "Код сотрудника" первой записи таблицы "Сотрудники (копия)", введя число 10, и нажмите клавишу Ф, чтобы перейти к следующей записи. Изменение кода сразу же будет отображено в столбце "Сотрудник" таблицы "Заказы (копия)".
Рис. 8.10. Каскадное обновление записей