15 | 12 | 2017

ЛАБОРАТОРНАЯ РАБОТА Установление связей между таблицами и запросы на выборку

ЛАБОРАТОРНАЯ РАБОТА Установление связей между таблицами и запросы на выборку

Задание 1. Установление связей между таблицами.

1. Откройте диалоговое окно Схема данных, щёлкнув на кнопке Схема данных в панели инструментов или выполнив команду Сервис - Схема данных.

2. Изучите структуру БД.

3. Выясните, между какими таблицами отсутствуют связи, и по каким полям эти таблицы можно связать. Какие таблицы будут главными, какие подчинёнными.

4. Закройте окно Схема данных.

5. Установите недостающие связи с помощью создания полей со списком.

Для установления связи между таблицами Типы и Товары следует преобразовать поле КодТипа в таблице Товары в поле со списком. При этом таблица Типы будет главной, а таблица Товары – подчинённой. Для преобразования следует:

¶ Открыть таблицу Товары (подчинённую) в режиме конструктора, выделив её в окне БД и щёлкнув на значке ;

¶ Для поля КодТипа в списке Тип Данных выбрать Мастер подстановок;

¶ В первом окне Мастера нажать кнопку Далее

¶ Во втором окне выбрать таблицу, являющейся главной для таблицы Товары, т. е. таблицу, из которой можно выбрать ТипТовара – таблицу Типы и нажать кнопку Далее;

¶ В третьем окне Мастера из доступных полей таблицы Типы выбрать поля КодТипа (по которому связываются таблицы) и Категория;

¶ В следующем окне Мастера согласимся с тем, что ключевой столбец скрыт, т. е. ширина столбца КодТипа в создаваемом списке будет равна 0 и нажать кнопку Далее;

¶ В последнем окне Мастера нажать кнопку Готово.

¶ В диалоговом окне Создание подстановки нажать кнопку Да.

¶ Закрыть таблицу Товары.

¶ Аналогично восстановите связь между таблицами Поставщики (главной) и Товары (подчинённой)

¶ Откройте окно Схема данных и преобразуйте созданные связи, предусмотрев выполнение условия целостности данных, каскадное удаление и каскадное обновление. Для этого дважды щёлкните левой кнопкой на связи и внесите изменения в окне Изменение связей.

¶ Нажмите кнопку ОК.

Создание запросов на выборку

Задание 1. Выяснить, поставки, каких товаров, относящихся к категории Фрукты, не ожидаются. В запрос включить наименование товара и реквизиты поставщиков данного товара.

Для создания запроса надо:

¶ В окне БД перейти на вкладку Запросы;

¶ Щёлкнуть на кнопке Создать и в появившемся окне диалога выбрать опцию Конструктор

¶ В окне диалога Добавление таблицы выбрать таблицы Товары, Поставщики и Типы, закрыть окно Добавление таблицы;

¶ В окне конструктора появятся указанные таблицы. Включить в бланк запроса поле Категория из таблицы Типы (двойным щелчком), поля Марка, Ожидается из таблицы Товары и поля Название, Адрес, Город, Телефон из таблицы Поставщики.

¶ В строку Условие отбора для поля Категория задать Фрукты, а для поля - Ожидается - 0;

¶ В строке Вывод на экран для полей Категория и Ожидается снять флажки опций, т. е. эти поля выводится на экран при выполнении запроса не будут;

¶ Выполнить запрос, щёлкнув на кнопке Вид панели инструментов или нажав кнопку Запуск ;

¶ Сохранить запрос под именем Запрос 11, щёлкнув на кнопке Сохранить или просто его закройте, что тоже приведёт к его сохранению.

Задание 2. Создать запрос для определения стоимости товаров в каждом из заказов, выполненных после 1997 года. В запрос включить КодЗаказа, НазваниеКлиента, НазваниеТовара и его стоимость.

Для создания запроса надо:

¶ В окне БД перейти на вкладку Запросы;

¶ Щёлкнуть на предложение Создание запроса в режиме конструктора.

¶ В окне диалога Добавление таблицы выбрать таблицы Клиенты, Заказы и Заказано;

¶ В окне конструктора появятся указанные таблицы. Включить в бланк запроса поля КодЗаказа, ДатаИсполнения из таблицы Заказы, поля КодТовара из таблицы Заказано, Название из таблицы Клиенты;

¶ Установить курсор в строку Поле первого свободного столбца и вызвать Построитель выражений (кнопка на панели инструментов или команда Построить в контекстном меню) для добавления вычисляемого поля Стоимость;

¶ В окне построителя выражений задать выражение, воспользоваться при этом возможностями Построителя

¶ Задать денежный формат для отображения данных поля Стоимость. Для этого установить курсор в поле Стоимость и щёлкнуть на кнопке Свойства . Для свойства Формат поля на вкладке Общие ввести выражение # ##0,00” грн”.

¶ В строку Условие отбора для поля Дата выполнения введите выражение >=01.01.1998

¶ Сохранить запрос под именем Запрос 12;

¶ Выполнить запрос.

Задание 3. Преобразуйте Запрос 12 в параметрический, выводя информацию только для одного клиента, для выполнения условия по дате исполнения используйте функцию Year().

Скопируйте Запрос 12, вставьте копию запроса и присвойте ему имя Запрос13. Внесите в Запрос13 следующие изменения:

¶ Откройте Запрос13 в режиме конструктора;

¶ Удалить столбец Дата исполнения;

¶ Установить курсор в строку Поле первого свободного столбца и вызвать Построитель выражений (кнопка на панели инструментов или команда Построить в контекстном меню) для добавления вычисляемого поля Год;

¶ В окне построителя выражений задать выражение: воспользоваться при этом возможностями Построителя Год:Year([Заказы]![ДатаИсполнения])

¶ В строке Условие отбора для поля Год задайте >1997

¶ В строке Условие отбора для поля Название задайте [Введите название клиента];

¶ В строке Вывод на экран для полей Год и Название снять флажки опций;

¶ Выполните запрос;

¶ В качестве названия клиента введите Island Trading

¶ Сохранить запрос.

Задания для самостоятельной работы

1. Отобрать не выполненные заказы, размещённые клиентами из Италии и Германии в 1998 году. В запрос включить поля: Код заказа, ДатаРазмещения, ДатаИсполнения, Доставка (способ доставки), НазваниеПолучателя, АдресПолучателя и СтранаПолучателя (все поля принадлежат таблице Заказы). При создании запроса использовать функцию Year().

Запрос сохранить под именем Запрос СР1.

2. Составить список сотрудников, оформивших заказы, доставленные почтой в США в 1996 году. В бланк запроса включит вычисляемое поле Фамилия, Имя, в котором будут отображаться Фамилии сотрудников и инициалы (например: Кротов А.) и использовать функцию Year().

Запрос сохранить под именем Запрос СР2 (воспользоваться таблицами Сотрудники и Заказы).