Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ACCESS_L5.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
295.94 Кб
Скачать

Связывание таблиц

На рис.8 показаны связанные таблицы Pet и Customer. Таблицы в запросе не будут связываться автоматически, если они не связаны на уровне таблиц, не имеют общего поля с одним именем для первичного ключа или если снят флажок Автоматическое объединение.

Рис.8. Объединение таблиц в конструкторе запросов

Чтобы связать таблицы Pets и Customer, выполните следующие действия.

1. Находясь в верхней части окна конструктора запросов, выберите поле Customer Number таблицы Customer.

2. Перетащите выделенное поле в таблицу Pets (при перетаскивании указатель мыши примет вид пиктограммы Поле).

3. Опустите пиктограмму Поле на поле Customer Number таблицы Pets.

На рис.8 показан процесс связывания таблиц. Сначала пиктограмма Поле появится в поле Customer Number таблицы Customer. Перетащите ее в таблицу Pets. При этом указатель мыши примет вид перечеркнутой окружности. Это означает, что в области между таблицами кнопку мыши отпускать нельзя. В поле Customer Number курсор примет свой прежний вид, указывая, что кнопку мыши можно отпустить. После того как вы отпустите кнопку мыши, появится линия связи.

Вы, конечно, можете создать любые связи между таблицами, даже совершенно бессмысленные, но при просмотре данных вы получите крайне нежелательный результат. Если два связанных поля не имеют общих значений, в режиме таблицы вы не увидите ни одной записи или получите декартово произведение, в котором каждая запись в одной таблице будет объединена с каждой записью в другой таблице. Если в одной таблице 100 записей, а в другой — 200, то декартово произведение создаст таблицу с 20000 записей и полученные результаты не будут иметь смысла. При связывании вы можете выбрать первой любую таблицу.

Удаление связей

Для удаления определенной линии связи между двумя таблицами выберите эту линию и нажмите клавишу <Dе1е1е>. Чтобы выделить линию связи, щелкните на ней. Например, создайте новый запрос, добавив таблицы Customer и Pets, а затем удалите линию связи между ними, выполнив следующие действия.

1. Выберите линию связи между полями Customer Number в таблицах Pets и Customeг, поместив указатель мыши на линию связи и щелкнув на ней левой кнопкой мыши.

2. После выделения линии связи нажмите клавишу <Dе1е1е>, и линия исчезнет.

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

Связь также можно удалить, выделив нужную линию и выполнив команду ПравкаУдалить.

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

Ассеss позволяет создавать связи между таблицами по многим полям (при этом может быть нарисовано несколько линий). Помните, что связь следует задавать только между полями с данными одного типа. В противном случае во время выполнения запроса не будет найдено ни одной записи с данными для их отображения в режиме таблицы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]