Задание База данных «Телефонная компания» MS Access (9 вариант).
База данных должна содержать следующие элементы:
База данных должна содержать следующие элементы:
- Таблица «Тарифы»: код тарифа; вид тарифа; цена, р./мин.
- Таблица «Виды льгот»: код льготы; вид льготы; размер, %.
- Таблица «Абоненты»: лицевой счет; телефон; Ф.И.О.; адрес; код льготы.
- Таблица «Платежи»: лицевой счет; код тарифа; дата оплаты; сумма платежа; дата отключения за неуплату
Поле со списком – таблица «Виды льгот», поле «Вид льготы».
Поле подстановки – «Код тарифа» в таблице «Платежи», источник таблица «Тарифы».
Запросы на выборку:
Поле подстановки – «Код тарифа» в таблице «Платежи», источник таблица «Тарифы».
Запросы на выборку:
- Состояние лицевого счета абонента В. Д. Федорова.
- Должники, имеющие в 2008 г. льготу «Инвалидность».
- Абоненты, отключенные за неуплату во втором квартале 2009 г.
Запрос с вычисляемым полем
Сумма оплаты с учетом льготы абонента (таблица «Платежи»).
Групповой запрос:
Количество абонентов по каждому виду льготы (таблица «Абоненты»).
Запрос с параметром:
Льготы, которые имеет абонент N
Отчет по абонентам, сгруппированный по виду льготы, сортировка по ФИО абонента.
Подробное описание, как можно выполнить такое задание, приведено в нулевом и первом вариантах.
Составляем таблицы и логическую схему, описываем типы данных и другие параметры полей данных (все, как сказано в методичке).
Сумма оплаты с учетом льготы абонента (таблица «Платежи»).
Групповой запрос:
Количество абонентов по каждому виду льготы (таблица «Абоненты»).
Запрос с параметром:
Льготы, которые имеет абонент N
Отчет по абонентам, сгруппированный по виду льготы, сортировка по ФИО абонента.
Подробное описание, как можно выполнить такое задание, приведено в нулевом и первом вариантах.
Составляем таблицы и логическую схему, описываем типы данных и другие параметры полей данных (все, как сказано в методичке).
Запускаем СУБД MS Access и начинаем составлять таблицы. Потом устанавливаем связи.
Схема базы данных в MS Access.
Получилось три справочных таблицы («Льготы», «Тарифы» и «Абоненты») и таблица с информацией о платежах. Связи и ключевые поля видно на схеме.
Делаем запросы.
Первый запрос на выборку:
Первый запрос на выборку:
Второй запрос на выборку
Третий запрос на выборку
Запрос с вычисляемым полем
На скриншоте видно длинную строку вычисляемого поля. Здесь применяется функция VBA IIf (expr, truepart, falsepart). Эта функция возвращает первый или второй результат в зависимости от истинности условия expr. Если результатом является истина, то вернется truepart, если ложь – то falsepart.
В качестве условия используется функция IsNull (expr), которая проверяет, не равно ли нулю выражение expr. В нашем случае если значение в поле «Льгота» таблицы «Абоненты» равно нулю, то возвращается сумма платежа. Если же у абонента есть льгота, то есть значения поля «льгота» не равно нулю, то возвращается сумма платежа за вычетом рассчитанной по указанному проценту льготы.
Групповой запрос
В качестве условия используется функция IsNull (expr), которая проверяет, не равно ли нулю выражение expr. В нашем случае если значение в поле «Льгота» таблицы «Абоненты» равно нулю, то возвращается сумма платежа. Если же у абонента есть льгота, то есть значения поля «льгота» не равно нулю, то возвращается сумма платежа за вычетом рассчитанной по указанному проценту льготы.
Групповой запрос
Запрос с параметром
Делаем отчет. Многотабличный запрос
Отчет в режиме конструктора:
Итоги в отчете не рассчитываются.
