Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по Access 2003.doc
Скачиваний:
4
Добавлен:
26.04.2019
Размер:
744.96 Кб
Скачать

2.4. Связи между таблицами.

При выводе отчетов о заказах одновременно используется информация из таблиц ЗАКАЗ, ТОВАР и ПОКУПАТЕЛЬ. Для совместной обработки данных между таблицами устанавливаются связи. Теоретически связи бывают трех типов: Один-к-Одному, Один-ко-Многим, Многие-ко-Многим, но Access поддерживает связи только первых двух типов. Связи устанавливаются по полям, которые одновременно имеются в обеих связываемых таблицах, имеют согласованный тип данных и хранят одну и ту же информацию.

Так, между таблицами ПОКУПАТЕЛЬ и ЗАКАЗ можно установить связь по полю Код покупателя. Это будет связь Один-ко-Многим: одному покупателю могут соответствовать несколько заказов. Аналогично можно установить связь между таблицами ТОВАР и ЗАКАЗ по полю Код товара: одному товару может соответствовать несколько заказов. Наличие подобных связей даст возможность при выводе отчета о продажах по таблице ЗАКАЗ вместо кода товара печатать его наименование, а вместо кода покупателя – его фамилию.

Теперь выберем пункт меню Сервис/ Схема данных... или пиктограмму Схема данных. Откроется сразу два окна Схема данных и Добавление таблицы. Добавим таблицы ЗАКАЗ, ПОКУПАТЕЛЬ и ТОВАР, выбирая имя таблицы и нажимая кнопку Добавить, затем нажмем кнопку Закрыть. Таблицы появятся в окне Схема данных.

При работе в СУБД Access часто используется буксировка данных. Выделяется поле, нажимается и держится нажатой левая кнопка мыши, поле перетаскивается с одного места экрана в другое. Отбуксируем поле Код покупателя из таблицы ПОКУПАТЕЛЬ (главной таблицы) в таблицу ЗАКАЗ (подчиненную) и опустим его сверху на поле Код покупателя в этой таблице. В появившемся окне Изменение связей отметим галочкой флажок Обеспечение целостности данных и нажмем кнопку Создать. В окне Схема данных возникнет связь Один-ко-Многим со значками 1 и Проделаем аналогичную операцию с полем Код товара в таблице ТОВАР.

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

Теперь наши таблицы связаны. В дальнейшем связи будут поддерживаться автоматически и обеспечивать целостность данных при их вводе и изменении.

  1. Добавить в схему данных таблицы КАТЕГОРИЯ ТОВАРА и КАТЕГОРИЯ ПОКУПАТЕЛЯ, использую пункт Связи / Добавить таблицу... .

  2. Установить связи Один-ко-Многим между таблицами КАТЕГОРИЯ ТОВАРА и ТОВАР, КАТЕГОРИЯ ПОКУПАТЕЛЯ и ПОКУПАТЕЛЬ.

3. Запросы

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

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