Создание связей для запросов

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

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

При использовании этого типа объединения из обеих таблиц или запросов выбираются записи, только если значения объединенных полей равны. Такая связь действительна только для данного запроса и не является связью в схеме БД.

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

Таким образом, для просмотра данных с помощью запроса создается объединение таблиц путем установки связей по общим полям.

Иногда возникает необходимость изменить поля связи в обеих таблицах. При этом создается новое значение первичного ключа (со стороны «один»), а со стороны «многие» происходит каскадное обновление связанных полей, для чего для данной связи должна быть включена «Целостность данных» и «Каскадное обновление». При отборе полей для запроса возникает вопрос, какое поле брать из связанных.

 Существуют правила по созданию запросов, обновляющих поля.

· Предпочтительнее включать в запрос поле связи из таблицы со стороны «многие», а не со стороны «один».

· Для обеспечения добавления записей в обе таблицы со связью «один ко многим» в запрос следует включить поле связи со стороны многие.

· Если необходимо запретить обновление любого поля, нужно задать для свойства формы «Разрешить изменения» - НЕТ.

· Если нужно запретить изменение для некоторых полей в форме нужно задать ДА для свойства «Блокировка» элемента управления этих полей.

· Изменив в запросе записи, находящиеся в таблице со стороны «один» нельзя вносить изменения в таблице со стороны «многие» до тех пор, пока внесенные изменения не будут сохранены.

· Значение, введенное в связанное поле на стороне «многие» уже должно присутствовать на стороне «один».


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: