
Запросы
Первый запрос: количество нарушений за период по видам
Создадим новый запрос.
В окне базы данных выбраем вкладку Запросы и команду Создать.
В появившемся диалоговом окне выбрать команду Конструктор / ОК.
Добавляем таблицы «Протокол» и «Виды административных нарушений».
В первом столбце строим следующее выражение: Год, месяц: 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.
Появляется ленточная форма. Переходим
в режим конструктора
,
чтобы настроить размеры полей и форма
готова.
Составная форма
Для создания составной формы воспользуемся мастером. Запускаем его с вкладки Формы.
На первом шаге выбираем все поля из таблиц «Виды административных нарушений» и «Составители протоколов», атакже все поля, кроме «Код составителя» и «Код нарушения» из таблицы «Протокол».
Выбираем вид представления данных – Виды административных нарушений.
Внешний вид выбираем табличный.
Стиль – Промышленный.
На последнем шаге задаём имена для основной и подчинённых форм.
Теперь добавим в заголовок формы фамилию, номер группы, номер зачётной книжки и номер варианта.
Для этого откроем нашу форму в режиме конструктора и поместим в заголовок объект «Надпись». Заполним его.
Далее на панели инструментов выбираем объект «Кнопка». Устанавливаем курсор в нужное место. Появляется мастер. Выбираем категорию «Разное» и действие «Запуск запроса».
Далее нам предложат выбрать запрос и указать название или картинку кнопки.
Создаём для каждого запроса по кнопке с соответствующим названием.
Кнопочная форма
Для создания кнопочной формы в меню Сервис выбираем команду Служебные программы, а затем Диспетчер кнопочных форм.
На вопрос «Не удается найти кнопочную форму в этой базе данных. Создать кнопочную форму?», нажимаем кнопку Да.
В диалоге Диспетчер кнопочных форм представлена Главная кнопочная форма, которая открывается по умолчанию. В этом окне формируем кнопочные формы Работа с данными и Печать данных, к которым будет переход из главной кнопочной формы. Для этого необходимо нажимаем кнопку Создать и вводим название кнопочной формы, например, Работа с данными и нажимаем ОК. Таким же образом создаём кнопочную форму Печать данных.
Далее создадим переходы между формами. Для этого выбираем главную кнопочную форму и нажимаем кнопку Изменить. В открывшемся окне нажимаем кнопку Создать. Появится окно изменения элемента кнопочной формы. В поле Текст вводим название кнопки – Работа с данными. В поле Команда из выпадающего списка выбирается Перейти к кнопочной форме. В поле Кнопочная форма выбираем форму Работа с данными. Таким же образом создаём переходы ко второй кнопочной форме Печать данных.
Для открытия форм и отчёта отличие состоит в выборе команды. Для форм в поле Команда выбираем Открыть форму для добавления, для отчёта – Открыть отчёт.
Теперь размещаем кнопки возврата к главной кнопочной форме и кнопку закрыть.
Для этого выбираем форму, нажимаем кнопку Изменить. Потом нажимаем Создать. В поле Текст пишем «Возврат», в поле Команда выбираем Перейти к кнопочной форме, в поле Кнопочная форма выбираем главную кнопочную форму. Нажимаем ОК.
Таким же способом создаём такую же кнопку на другой кнопочной форме.
Для создания кнопки выход в предыдущем способе нужно задать название «Завершение работы» и выбрать команду Выйти из приложения.