Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пояснювальна_записка.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
502.78 Кб
Скачать

7.Додаткові вимоги

Додаткова задача по автоматичному розрахунку і занесенню в таблицю вартості розмови реалізована за допомогою форми Додати розмову, тому описана в попередньому розділі див. стор. 16.

Для визначення абонента, якій має найбільшу загальну тривалість розмови, створимо наступні запити:

1. Запрос_дод_1. Вигляд конструктора запитів для запиту Запрос_дод_1, який визначає сумарну тривалість розмов кожного абонента , наведений на рисунку 7.1.

Рисунок 7.1. – Зовнішній вигляд запиту Запрос_дод_1

SQL – текст запиту Запрос_дод_1:

SELECT Абоненти.[ПІБ абонента], Sum([Облік розмов].[тривалість розмови, хвилини]) AS [Sum-тривалість розмови, хвилини]

FROM Абоненти INNER JOIN [Облік розмов] ON Абоненти.[код абонента] = [Облік розмов].[код абонента]

GROUP BY Абоненти.[ПІБ абонента];

2. Запрос_дод_2. Вигляд конструктора запитів для запиту Запрос_дод_2, який визначає максимальну тривалість розмов, наведений на рисунку 7.2.

SQL – текст запиту Запрос_дод_2:

SELECT Max(Запрос_дод_1.[Sum-тривалість розмови, хвилини]) AS [Max-Sum-тривалість розмови, хвилини]

FROM Запрос_дод_1;

Рисунок 7.2. – Зовнішній вигляд запиту Запрос_дод_2

3. Запрос_дод_3. Вигляд конструктора запитів для запиту Запрос_дод_3, який визначає абонента з максимальною загальною тривалістю розмов, наведений на рисунку 7.3.

Рисунок 7.3. – Зовнішній вигляд запиту Запрос_дод_3

SQL – текст запиту Запрос_дод_3:

SELECT Запрос_дод_1.[ПІБ абонента], Запрос_дод_1.[Sum-тривалість розмови, хвилини]

FROM Запрос_дод_1 INNER JOIN Запрос_дод_2 ON Запрос_дод_1.[Sum-тривалість розмови, хвилини] = Запрос_дод_2.[Max-Sum-тривалість розмови, хвилини];

Для створення звіту про розмови за той рік, який вибере користувач, створимо форму Форма_дод. Зовнішній вигляд форми наведено на рисунку 7.4.

Рисунок 7.4. – Зовнішній вигляд форми Форма_дод

Для форми встановлені деякі властивості, що наведені у таблиці 7.1.

Таблиця 7.1. – Властивості форми Форма_дод

Властивість

Значення

Режим по умолчанию

Одиночная форма

Полосы прокрутки

Отсутствуют

Область выделения

Нет

Кнопки перехода

Нет

Разделительные линии

Нет

Об’єкт форми поле со списком ПолеСоСписком0, призначено для вибору року який цікавить користувача. Властивості цього об’єкту наведено в таблиці 7.2.

Таблиця 7.1. – Властивості об’єкту ПолеСоСписком0

Властивість

Значення

Тип источника строк

Таблица или запрос

Источник строк

SELECT [Роки розмов].Выражение1 FROM [Роки розмов];

Присоединенній столбец

1

Вигляд конструктора запитів для запиту Роки розмов, який визначає роки розмов, які є в наявності, наведений на рисунку 7.5.

SQL – текст запиту Роки розмов:

SELECT Year([Облік розмов]![дата розмови]) AS Выражение1

FROM [Облік розмов]

GROUP BY Year([Облік розмов]![дата розмови]);

Рисунок 7.5. – Зовнішній вигляд конструктора запиту Роки розмов

Об’єкт форми кнопка Звіт про розмови, створена за допомогою майстра та стандартних процедур Access. Вона відкриває звіт Звіт_до, який створено за допомогою запиту До_звіту_дод. Вигляд конструктора запитів для запиту До_звіту_дод, який визначає дані про розмови за той рік, який вибрав користувач, наведений на рисунку 7.6.

Рисунок 7.5. – Зовнішній вигляд конструктора запиту До_звіту_дод

SQL – текст запиту До_звіту_дод:

SELECT Абоненти.[ПІБ абонента], Країни.[Hазва країни], Міста.[Hазва міста], [Облік розмов].[тривалість розмови, хвилини], [Облік розмов].[вартість розмови], [Облік розмов].[дата розмови]

FROM (Країни INNER JOIN Міста ON Країни.[код країни] = Міста.[код країни]) INNER JOIN (Абоненти INNER JOIN [Облік розмов] ON Абоненти.[код абонента] = [Облік розмов].[код абонента]) ON Міста.[код міста] = [Облік розмов].[код міста]

WHERE (((Year([Облік розмов]![дата розмови]))=[Forms]![Форма_дод]![ПолеСоСписком0]));

Звіт Звіт_дод створено за допомогою майстра звітів. Загальний вигляд звіту наведено у додатку В.