- •«Введение в субд microsoft access»
- •1.Основные понятия системы управления базами данных Microsoft Access
- •2.Описание и анализ экономической задачи, построение информационно-логической модели предметной области
- •3.Технология работы с субд Access
- •3.1.Создание новой базы данных
- •3.1.1.Разработка структуры таблиц базы данных
- •Имена и свойства полей таблицы «Каталог»
- •Имена и свойства полей таблицы «Продажи за год»
- •3.1.2.Создание схемы данных
- •3.2.Технология работы с формами
- •3.2.1.Создание простой формы.
- •3.2.2.Создание сложной формы
- •3.3.Технология организации запросов
- •3.3.1.Конструирование запроса на выборку
- •3.3.2.Конструирование перекрестного запроса
- •3.3.3.Конструирование запросов на изменение (обновление, добавление, удаление, создание)
- •Конструирование запроса на обновление
- •Конструирование запроса на создание таблицы
- •Конструирование запроса на добавление
- •3.4.Технология разработки отчетов
- •Создание отчета.
- •Расчет прибыли, получаемой агентом до конца 10 месяца.
- •3.5.Технология создания макросов
- •3.6.Технология создания пользовательского меню
- •1. Основные понятия системы управления базами данных Microsoft Access 3
- •2. Описание и анализ экономической задачи, построение информационно-логической модели предметной области 5
- •3. Технология работы с субд Access 8
3.3.1.Конструирование запроса на выборку
Запрос на выборку - наиболее часто используемый тип запросов, он является основой для всех типов запросов. Запрос на выборку совмещает данные из одной или нескольких таблиц и иногда плюс результаты, которые по желанию пользователь может изменить. Запрос на выборку может быть однотабличным и многотабличным.
Задание 13: Получите данные помесячно об объеме продаж каждым агентом конкретных видов изделий различным клиентам по себестоимости и договорной цене.
Данную информацию можно получить с помощью запроса на выборку данных из таблиц Каталог, Агенты, Заказчики, Продажи за год.
Д ля создания запроса в окне БД на закладке Запросы нажмите кнопку Создать. Выберите режим конструктора:
Вы попадаете в режим конструирования запроса.
Вначале выбираются таблицы, необходимые для конкретного запроса.
В окне Добавление таблицы выберите с помощью кнопки Добавить таблицы: «Агенты», «Каталог», «Заказчики», «Продажи за год». После добавления всех таблиц закройте это окно.
Запрос по образцу в верхней части содержит схему данных, включающую используемые таблицы, и в нижней части – бланк запроса.
В нашем примере выбранные для отбора данных таблицы связаны между собой одно – многозначными связями (1:М), они устанавливаются в схеме данных автоматически.
В бланке запроса указывается:
в строках Поле, Имя таблицы – имена полей, используемых в запросе, и из каких таблиц они взяты;
в строке Вывод на экран –отмечаются поля, которые должны быть включены в результирующую таблицу;
в строке Сортировка - можно выбрать порядок сортировки записей результата;
в строке Условие отбора и строке Или - могут быть заданы условия отбора записей.
Включите поле ФИО агента из таблицы «Агенты» в запрос. Для этого щелкните левой кнопкой мыши по полю ФИО агента в таблице «Агенты», поле автоматически включилось в запрос. Аналогично включите поля: ФИО заказчика из таблицы «Заказчики», Наименование товара из таблицы «Каталог», Месяц, Проданное количество из таблицы «Продажи за год».
В строке Вывод на экран отметьте, что выбранные поля будут включены в результирующую таблицу.
Условия отбора задавать не требуется, поскольку необходима информация по всем агентам, заказчикам и продукции за весь период времени.
В результате выполненных действий конструктор запроса будет выглядеть так:
В запросе над полями могут производиться вычисления. В нашем задании требуется получить информацию об объеме продаж по себестоимости, т.е. исходя из цен, указанных в каталоге, и по договорной стоимости. В исходных таблицах содержатся данные о ценах только за единицу продукции. Требуемые данные рассчитываются путем умножения соответствующих цен на количество проданной продукции. Таким образом, нам необходимо создать 2 вычисляемых поля, которые назовем Себестоимость и Общая договорная стоимость.
Ввод выражений в вычисляемые поля с помощью построителя выражений
В свободном поле введите заголовок поля: Себестоимость: Д алее нажмите на панели инструментов кнопку Построить. Открывается окно диалога Построителя выражений.
В ведите формулу для расчета себестоимости проданной продукции с помощью Построителя выражений:
Себестоимость:([Каталог]![Цена за единицу]*[Продажи за год]![Проданное количество]). Для этого:
В левом окне выберите Таблицы/ Каталог, в среднем окне выберите Цена за единицу и нажмите кнопку Вставить.
Поставьте знак умножения, который находится на панели инструментов Построителя выраженийэ
Выберите в левом окне таблицу Продажи за год, в среднем окне - Проданное количество, нажмите кнопку Вставить.
Закройте круглую скобку. Нажмите кнопку ОК.
Окно мастера построителя автоматически закроется, а выражение будет введено в поле, названное Себестоимость.
В следующем свободном поле введите выражение с помощью построителя выражений:
Общая договорная стоимость: ([Продажи за год]![Договорная цена за единицу]*[Продажи за год]![Проданное количество]) Данное выражение означает, что значения из поля Договорная цена за единицу таблицы “Продажи за год” умножаются на значения из поля Проданное количество этой же таблицы.
В запросе отметьте, что вычисляемые поля выводятся на экран.
Н ажмите кнопку Запуск запроса на панели инструментов и сравните полученный результат с таблицей:
Сохраните запрос под именем: «Запрос на выборку» и закройте его.
ФИО агента |
ФИО заказчика |
Наименование товара |
Месяц |
Проданное кол-во |
Себестоимость |
Общая договорная стоимость |
Котов |
Иванов |
дискета 3,5 BASF |
7 |
2 |
18 |
20 |
Котов |
Иванчук |
дискета 3,5 BASF |
1 |
5 |
45 |
50 |
Великанов |
Иванчук |
дискета 3,5 BASF |
6 |
1 |
9 |
10 |
Никулин |
Петров |
дискета 3,5 TDK |
8 |
1 |
8 |
9 |
Никулин |
Федоров |
дискета 3,5 TDK |
2 |
3 |
24 |
27 |
Никулин |
Федоров |
дискета 3,5 TDK |
5 |
3 |
24 |
27 |
Котов |
Иванов |
картридж для принтера |
4 |
4 |
1000 |
1120 |
Великанов |
Иванов |
картридж для принтера |
3 |
2 |
500 |
600 |
Великанов |
Иванчук |
картридж для принтера |
9 |
1 |
250 |
290 |
Котов |
Петров |
бумага для принтера |
4 |
1 |
180 |
195 |
Котов |
Федоров |
бумага для принтера |
10 |
2 |
360 |
380 |
Задание14: Осуществите выборку данных о работе конкретных агентов (агент задается пользователем) за интересующий период времени от начала года.
Данную операцию возможно осуществить с помощью параметрического запроса на выборку.
Параметрический запрос – это запрос, при выполнении которого запрашивается, по какому значению поля должна быть осуществлена выборка данных. Само значение поля вводится не в бланк запроса, а задается отдельно, в диалоге. Поэтому есть возможность при каждом запуске запроса на выполнение менять конкретное значение поля, выступающего в качестве критерия отбора информации. Для создания такого запроса нужно определить параметр запроса. Имя параметра запроса вводится непосредственно в условия отбора в квадратных скобках []. При выполнении запроса это имя появится в диалоговом окне. Введите значение параметра. Если в запрос вводится несколько параметров, то порядок их ввода через диалоговые окна определяется порядком расположения полей с параметрами в бланке запроса.
Запрос создается в режиме Конструктора. В диалоговом окне Добавление таблицы выберите вкладку запросы и добавьте вместо исходных таблиц Запрос на выборку.
Включите все поля таблицы Запрос на выборку в запрос.
В условие отбора поля ФИО агента введите параметр: [введите имя агента:]. А в условие отбора поля Месяц введите параметр:<=[введите конец учета:]. Между условиями отбора в разных полях одной строки выполняется логическая операция AND, т.е. требуется вывести данные по конкретному агенту и за заданный период времени. Если условия отбора указаны в разных строках, то будет выполнена логическая операция OR.
Необходимо запомнить, что имя параметра запроса не должно совпадать с наименованием самого поля. Например, в условие отбора поля Месяц нельзя вводить [Месяц].
З апустите запрос на выполнение. Задайте в диалоге: Имя агента - Никулин, Конец учета- 10.
Результатом выполнения данного запроса будет таблица, по структуре совпадающая с выходной таблицей по заданию 13, однако в нее будут включены записи только по агенту Никулину и с 1 по 10 месяцы включительно.
ФИО агента
ФИО заказчика
Наименование товара
Месяц
Проданное количество
Себестоимость
Общая договорная стоимость
Никулин
Петров
дискета 3,5 TDK
8
1
8
9
Никулин
Федоров
дискета 3,5 TDK
2
3
24
27
Никулин
Федоров
дискета 3,5 TDK
5
3
24
27
Никулин
Давидеко
чернила
2
1
90
100
Никулин
Иванчук
чернила
5
4
360
400
Сохраните запрос под именем «Параметрический запрос».
Задание15: Определите, сколько всего каждого изделия продал интересующий пользователя агент конкретным заказчикам от начала года до конца заданного периода. Рассчитайте прибыль агента.
Данное задание возможно выполнить с помощью запроса на группировку данных. Запрос, выполняющий вычисления над группой записей, называется запрос с групповой операцией.
В результате запроса вам необходимо получить сгруппированные данные об объемах и стоимости продаж за весь период (он определяется пользователем) по заданному заказчику. Источником данных для такого запроса может служить таблица, получаемая в результате выполнения параметрического запроса (см. задание 14). Прибыль агента равна разнице между общей договорной стоимостью и себестоимостью продукции.
Создайте запрос в режиме Конструктора. В диалоговом окне Добавления таблиц добавьте запрос «Параметрический запрос». Далее из таблицы «Параметрический запрос» перенесите все поля, кроме месяца в бланк запроса.
В свободное поле с помощью Построителя введите выражение:
Прибыль: ([Параметрический запрос]![Общая договорная стоимость]-[Параметрический запрос]![Себестоимость]).
Установите Вывод на экран всех полей.
Д алее на панели инструментов нажмите кнопку Группировка, в запросе появится еще одна строка Групповые операции:
В строке Групповые операции напротив полей введите:
Ф ИО агента
ФИО заказчика Группировка
Наименование товара
П роданное количество
Себестоимость Sum
Общая договорная стоимость
П рибыль - Выражение
Запустите запрос и сравните результат с итогом, полученным в задании 14, при этом задайте следующие значения параметров: имя агента - Никулин, конец учета: 10.
ФИО агента
ФИО заказчика
Наименование товара
Sum_Проданное количество
Sum_Себестоимость
Sum_Общая договорная стоимость
Прибыль
Никулин
Давидеко
чернила
1
90
100
10
Никулин
Иванчук
чернила
4
360
400
40
Никулин
Федоров
дискета 3,5 TDK
6
48
54
6
Сохраните запрос как «Запрос группировка данных»