Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КР КИТ в11 (1).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.49 Mб
Скачать

Запросы

Первый запрос: количество нарушений за период по видам

Создадим новый запрос.

В окне базы данных выбраем вкладку Запросы и команду Создать.

В появившемся диалоговом окне выбрать команду Конструктор / ОК.

Добавляем таблицы «Протокол» и «Виды административных нарушений».

В первом столбце строим следующее выражение: Год, месяц: Format(Протокол!Дата;"yyyy mmmm"). В этом столбце будет отображаться дата протокола в формате год, месяц. Далее выбираем поля «Наименование нарушения» и «№ протокола». Отображаем групповые операции и для поля «№ протокола» выбираем Count.

В свойствах поля «№ протокола» ставим подпись «Количество».

Режим конструктора:

Режим таблицы:

Второй запрос: задолженность по оплате

Создаём новый запрос.

Добавляем таблицы «Протокол» и «Оплата штрафов».

В бланке запроса выбираем поля: «ФИО», «№ протокола», «Размер наложенного штрафа».

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

Для того, чтобы отобразить выполненные работы без оплаты достаточно добавить любое поле из таблицы «Оплата штрафов», например, «№ протокола» и указать условие отбора Is Null (пустое значение).

Режим конструктора:

Режим таблицы:

Третий запрос: сумма штрафов по периодам.

Создаём новый запрос.

Добавляем таблицы «Протокол» и «Оплата штрафов».

В первом столбце строим следующее выражение: Год, месяц: Format(Протокол!Дата;"yyyy mmmm"). В этом столбце будет отображаться дата протокола в формате год, месяц. Далее выбираем поля «размер наложенного штрафа» и «Размер оплаты штрафа». Отображаем групповые операции и для выбранных полей устанавливаем групповую операцию Sum. В свойствах полей ставим подписи их названия.

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

Режим конструктора:

Режим таблицы:

Четвёртый запрос: нарушение с наибольшей общей суммой наложенного штрафа.

Сначала создадим два вспомогательных запроса. Один для нахождения общей суммы по каждому виду нарушения, а второй для нахождения максимальной общей суммы.

Создаём новый запрос.

Добавляем таблицы «Виды административных нарушений» и «Протокол». Выбираем поля «Наименование нарушения» и «Размер наложенного штрафа». Отображаем групповые операции и для размера наложенного штрафа выбираем операцию Sum. Сохраняем.

Режим конструктора:

Режим таблицы:

Теперь создадим запрос, который выберет максимальную общую сумму.

Создаём новый запрос и помещаем туда только что созданный.

В бланке запроса выбираем поле «Sum-Размер наложенного штрафа». Отображаем групповые операции, выбрав соответствующую команду из контекстного меню. И выбираем операцию Max. Сохраняем запрос.

Рижим конструктора: Режим таблицы:

Теперь на основе этих двух запросов сформируем наш запрос.

Создаём новый запрос и помещаем в него два вспомогательных запроса. Создаём связь между запросами по полям «Sum-Размер наложенного штрафа» и «Max-Sum-Размер наложенного штрафа». В бланке запроса выбираем поля «Наименование нарушения» и «Sum-Размер наложенного штрафа». Сохраняем запрос.

Режим таблицы:

Отчёты

Ведомость протоколов

Создаём новый запрос. Добавляем в него все четыре таблицы. В бланке запроса выбираем поля: «Наименование составителя протокола», «Наименование нарушения», «ФИО», «№ протокола», «Дата», «Адрес», «Место работы», «Размер штрафа», «Размер оплаты». Далее строим следующее выражение: Долг: Nz([Размер наложенного штрафа])-Nz([Размер оплаты штрафа]). Сохраняем.

Для создания итогового отчёта с помощью мастера выбираем вкладку Отчёты и нажимаем кнопку Создать. В появившемся окне выбираем мастер отчётов. В качестве источника данных выбираем Ведомость протоколов. Нажимаем кнопку ОК. Выбираем все поля для отчёта. Нажимаем кнопку Далее. С помощью кнопки > выбираем уровни группировки, сначала по наименованию составителя протокола, потом по наименованию нарушения.

Нажимаем кнопку Далее. Нажимаем кнопку Итоги. Ставим птички для полей «Размер наложенного штрафа», «Размер оплаты» и «Долг» в столбце Sum. Нажимаем кнопку ОК.

После нажимаем кнопку Далее. В макете выбираем структура 1. Ориентация – альбомная.

Нажимаем кнопку Далее. Выбираем полужирный стиль.

Нажимаем кнопку Далее.

Задаём имя для отчёта «Ведомость протоколов» и нажимаем на кнопку Готово.

Переходим в режим Конструктор нажатием кнопки на панели инструментов. Корректируем ширину полей. Полученный отчёт представлен на следующем рисунке.

Анализ протоколов

В запрос для второго отчёта добавляем таблицы «Протокол», «Составитель протокола», «Виды административных нарушений».

В первый столбец вводим выражение Период (год, месяц): Format(Протокол!Дата;"yyyy mmmm")

Выбираем поля «Наименование нарушения», «№ протокола», «наименование составителя», «№ протокола».

Для обоих полей № протокола выбираем групповую операцию Count.

Теперь на основе полученного запроса составим отчёт.

Для создания итогового отчёта с помощью мастера выбираем вкладку Отчёты и нажимаем кнопку Создать. В появившемся окне выбираем мастер отчётов. В качестве источника данных выбираем анализ протоколов. Нажимаем кнопку ОК.

Выбираем поля для отчёта. Нажимаем кнопку Далее.

С помощью кнопки > выбираем уровни группировки по периоду (год, месяц). Нажимаем кнопку Далее.

Нажимаем кнопку Итоги. Ставим галочки для полей «№ протокола» в столбце Sum. Нажимаем кнопку ОК. После нажимаем кнопку Далее.

В макете выбираем структура 1. Ориентация – альбомая. Нажимаем кнопку Далее.

Выбираем деловой стиль. Нажимаем кнопку Далее.

Задаём имя для отчёта «Анализ протоколов» и нажимаем на кнопку Готово.

Полученный отчёт представлен на следующем рисунке.

Формы

Ленточная форма

Для создания ленточной формы в окне базы данных выбираем вкладку Формы и команду Создать. Далее выбирает тип формы – Автоформа: ленточная и в качестве источника исходных данных таблицу «Оплата штрафов». Нажимаем OK. Появляется ленточная форма. Переходим в режим конструктора , чтобы настроить размеры полей и форма готова.

Составная форма

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

На первом шаге выбираем все поля из таблиц «Виды административных нарушений» и «Составители протоколов», атакже все поля, кроме «Код составителя» и «Код нарушения» из таблицы «Протокол».

Выбираем вид представления данных – Виды административных нарушений.

Внешний вид выбираем табличный.

Стиль – Промышленный.

На последнем шаге задаём имена для основной и подчинённых форм.

Теперь добавим в заголовок формы фамилию, номер группы, номер зачётной книжки и номер варианта.

Для этого откроем нашу форму в режиме конструктора и поместим в заголовок объект «Надпись». Заполним его.

Далее на панели инструментов выбираем объект «Кнопка». Устанавливаем курсор в нужное место. Появляется мастер. Выбираем категорию «Разное» и действие «Запуск запроса».

Далее нам предложат выбрать запрос и указать название или картинку кнопки.

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

Кнопочная форма

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

На вопрос «Не удается найти кнопочную форму в этой базе данных. Создать кнопочную форму?», нажимаем кнопку Да.

В диалоге Диспетчер кнопочных форм представлена Главная кнопочная форма, которая открывается по умолчанию. В этом окне формируем кнопочные формы Работа с данными и Печать данных, к которым будет переход из главной кнопочной формы. Для этого необходимо нажимаем кнопку Создать и вводим название кнопочной формы, например, Работа с данными и нажимаем ОК. Таким же образом создаём кнопочную форму Печать данных.

Далее создадим переходы между формами. Для этого выбираем главную кнопочную форму и нажимаем кнопку Изменить. В открывшемся окне нажимаем кнопку Создать. Появится окно изменения элемента кнопочной формы. В поле Текст вводим название кнопки – Работа с данными. В поле Команда из выпадающего списка выбирается Перейти к кнопочной форме. В поле Кнопочная форма выбираем форму Работа с данными. Таким же образом создаём переходы ко второй кнопочной форме Печать данных.

Для открытия форм и отчёта отличие состоит в выборе команды. Для форм в поле Команда выбираем Открыть форму для добавления, для отчёта – Открыть отчёт.

Теперь размещаем кнопки возврата к главной кнопочной форме и кнопку закрыть.

Для этого выбираем форму, нажимаем кнопку Изменить. Потом нажимаем Создать. В поле Текст пишем «Возврат», в поле Команда выбираем Перейти к кнопочной форме, в поле Кнопочная форма выбираем главную кнопочную форму. Нажимаем ОК.

Таким же способом создаём такую же кнопку на другой кнопочной форме.

Для создания кнопки выход в предыдущем способе нужно задать название «Завершение работы» и выбрать команду Выйти из приложения.