Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

БазыДанных / Лаб_Access / Lab_3_Access

.DOC
Скачиваний:
58
Добавлен:
14.04.2015
Размер:
101.38 Кб
Скачать

ЛАБОРАТОРНАЯ РАБОТА № 3

ТЕМА: Многотабличные запросы.

ЦЕЛЬ: Освоить технологию создания и использования многотабличных запросов для отбора данных.

ВРЕМЯ: 4 часа.

ЗАДАНИЕ:

  1. Продолжить заполнение данных.

  2. Освоить создания запроса по нескольким таблицам.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

1. Построение запроса по нескольким таблицам

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

Рассмотрим технологию создания многотабличного запроса на примере отрабатываемой задачи.

Пусть, например, нужно узнать, сколько и какого товара было поставлено клиенту, код которого равен 6. Для решения этой задачи нужно запустить Конструктор запросов. Затем перенести в окно Конструктора запросов таблицы Клиент, Заказ, Заказано и Товар. Из таблицы Клиент выбрать поля КодКлиента и Клиент, из таблицы Заказ — поле КодЗаказа, из таблицы Заказано — поля КолПостТов (Количество поставленного товара), из таблицы Товар — поле НаименТов (Наименование товара). В строке Условие отбора для поля КодКлиента ввести число 6. В результате бланк запроса будет выглядеть, как он представлен на рис. 8.1.

Рис. 8.1. Бланк запроса

После запуска запроса на исполнение результат будет выглядеть так, как это представлено на рис 8.2.

Рис. 8.2. Результат выполнения запроса

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

В многотабличных запросах логические И и ИЛИ работают так же как ив однотабличных. Условия выбора, образующие логическое И, располагаются в одной строке. При задании выражения ИЛИ условия можно располагать в разных строках или же использовать оператор Or.

Например, нужно получить сведения, какие клиенты в Украине и России сделали заказы в течение февраля и марта 1998 года. Такой запрос с использованием логических операторов может быть записан в таком виде:

Страна = «Украина» И ДатаЗаказа >= #01.02.98# И ДатаЗаказа <= #31.03.98# ИЛИ Страна = «Россия» И ДатаЗаказа >= #01.02/98# И ДатаЗаказа <= #31.03.98#

  1. Реализовать данный запрос можно следующим образом:

  2. Запустить Конструктор запросов и добавить в бланк запросов таблицы Клиент и Заказ.

  3. Из таблицы Клиент в бланк перенести поля Клиент и Страна, а из таблицы Заказ — поле ДатаЗаказа.

  4. В строку Условие отбора по полю Страна ввести «Украина», а в строку или для данного поля — «Россия».

  5. В строки Условие отбора и или для поля ДатаЗаказа ввести условие отбора по дате заказа. Для этого целесообразно воспользоваться Построителем выражений в такой последовательности:

    1. вызвать окно Построителя выражений, как это было описано ранее;

    2. двойным щелчком мыши раскрыть папку Таблицы в нижнем левом списке окна, а затем — папку Заказы — во втором списке появляется перечень полей таблицы Заказ;

    3. пользуясь списком полей и кнопками с нужными операторами, построить условие отбора по полю ДатаЗаказа (рис. 8.3).

Рис.8.3. Построитель выражений

Затем запустить запрос — на экран выводится результат запроса (рис. 8.4).

Рис. 8.4. Результат выполнения запроса

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

2. Использование в запросах вычисляемых полей

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

При выполнении запросов можно вычислять значения по одному или нескольким полям одной или нескольких таблиц. Например, применительно к отрабатываемой учебной задаче нужно получить сведения о заказах и их стоимости по видам товаров, сделанных клиентами из России. Сведения о клиентах находятся в таблице Клиент. Сведения о видах товаров — в таблице Товар. Для вычисления стоимости заказанных товаров понадобятся цена товара (содержится в таблице Товар) и количество заказанного товара (содержится в таблице Заказано).

Построить данный запрос можно следующим образом:

  1. Запустить конструктор запросов и добавить в бланк запросов таблицы Клиент, Заказ, Заказано, Товар.

  2. Из таблицы Клиент в бланк перенести поля Страна и Клиент, из таблицы Товар — поле НаименТовара.

  3. В соседнем свободном столбце бланка построить с помощью Построителя выражений, как было описано выше, расчётное соотношение (рис. 8.5).

Рис. 8.5. Построитель выражений с расчётной формулой

  1. Щелчком мыши на кнопке ОК закрыть Построитель выражений — в столбце бланка запроса появляется выражение:

Выражение1:[Заказано]![КолЗаказТов]*[Товар]![Цена]

  1. Слово Выражение1 заменить на Стоимость заказа.

  2. Запустить запрос на выполнение. Примерный результат запроса представлен на рис. 8.6.

Рис. 8.6. Результат выполнения запроса

3. Параметризированный запрос

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

Параметризированный запрос каждый раз при выполнении требует ввода определённых параметров. Это исключает потребность в постоянной модификации запроса в режиме конструктора запросов для изменения значений параметров.

Параметризированные запросы удобно использовать в формах и отчётах, т.к. каждый раз при их открытии система запрашивает у пользователя требуемый параметр.

Создание и запуск такого запроса рассмотрим на следующем примере.

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

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

Создание собственно запроса производится в таком порядке:

  1. Выбрать в диалоговом окне БД вкладку Запросы.

  2. Запустить Конструктор запросов.

  3. Выбрать таблицы Страна и Клиент.

  4. Из таблицы Страна в бланк запросов перенести поле Страна, а из таблицы Клиент — поле Клиент.

  5. В строку Условие отбора по полю Страна ввести критерий в виде [Введите Страна] и запустить запрос на исполнение — появится диалоговое окно Введите значение параметра (рис. 8.7).

Рис. 8.7. Диалоговое окно Введите значение параметра

  1. Ввести значение параметра — в данном случае название страны (например, Украина) и щёлкнуть мышью на кнопке ОК — на экран выводится результат запроса в форме таблицы (например, рис. 8.8).

Рис. 8.8. Результат выполнения запроса

  1. Закрыть окно с результатом запроса — появляется диалоговое окно с вопросом о необходимости сохранить запрос.

  2. Щёлкнуть на кнопке ДА — появляется диалоговое окно с предложением ввести имя запроса.

  3. Ввести имя запроса (например, Запрос Страна — Клиент) и щёлкнуть на кнопке ОК — запрос сохраняется и его имя заносится во вкладку Запросы окна БД.

Чтобы использовать данный запрос в дальнейшем, достаточно выделить его имя во вкладке Запросы и щелкнуть на кнопке Открыть — появляется диалоговое окно «Введите значение параметра» (рис. 8.7), в котором следует задать значение параметра выборки данных (в данном случае — название страны).

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

Построить предлагаемый запрос и форму для запроса применительно к созданной БД. Самостоятельно создать и опробовать и другие запросы для созданной БД.

Соседние файлы в папке Лаб_Access