Выпадающий список “Автомобиль” – содержит значение “Любой”, и значения всех автомобилей имеющихся в автопарке школы.
Выпадающий список “Инструктор” – формируется посредством анализа первого поля. И заполняется всеми инструкторами, которые обучают на этой модели автомобиля.
Кнопка “Отчет” – формирует табличный отчет по заданным критериям.
Кнопка “Закрыть” – возвращает в главное меню.
В этом приложении представлены 3 различных отчета, которые представляют собой сформированную законченным образом табличную информацию.
Рисунок 37 – Информация о клиенте
Отчёт “Информация” – отображает всю информацию о выбранном клиенте в таблице. Эта информация содержит помимо общих данных указанных при его регистрации, также и информацию касательно его обучения.
Кнопка “Печать” – открывает диалог отправления этого отчета на печать, а кнопка “Вернуться” – скрывает этот лист и возвращает на форму построения отчета.
Рисунок 38 - Результаты учебы
Отчет “Результаты учебы” – отображает все данные по учебе, а именно о сдаче экзаменов, различными категориями учеников. Верхнее поле содержит критерии выбранной категории (“Статус”, “Год рождения”, “Автомобиль”), ниже идут непосредственно сами количественные результаты сдачи каждого из экзаменов.
В графе “Итого допущено до экзамена в ГАИ” – отображается количественная информация о том, сколько учеников сдали все внутренние экзамены автошколы.
В графе “Итого сдало экзамен в ГАИ” – отображается количественная информация о том, сколько учеников сдали все экзамены в ГАИ и получили возможность получить права.
В графе “Всего записей в базе” – отображается сколько всего запсией в базе данных, которые удовлетворяют заданному критерию.
Рисунок 39 - Статистика инструкторов
Отчет “Статистика инструкторов” – отображает все данные по результатам сдачи экзаменов у конкретных инструкторов.
Графа “Инструктор” – отображает имя инструктора по которому выдается информация.
Графа “Автомобиль” – отображает марку автомобиля, на которой проводит обучение инструктор.
Графа “Кол-во” записанных учеников – отображает количественную информацию об учениках, обучавшихся у данного инструктора. В расчет принимаются только те, кто уже окончил обучение.
Ниже идет подробная информация по каждому экзамену.
Самая нижняя графа – “Процент полностью сдавших экзамены в ГАИ”, отображает процентную информацию о тех, кто сдал все экзамены в гаи, и получил возможность получить права.
Сегодня, существует множество задач, которые возможно автоматизировать в той или иной степени. Умение автоматизировать задачи позволяет в значительной мере экономить время и избегать ошибок.
В ходе выполнения курсовой работы была подробно изучена среда разработки VBA и закреплены следующие навыки:
1) Создание пользовательского интерфейса.
2) Создание алгоритмов автоматизирующих процесс работы с базой данных.
3) Занесение новых значений в базу данных.
4) Обработка ошибочных данных.
5) Алгоритмы создания отчетной информации.
В дальнейшем возможна доработка этого приложения, в качестве примеров можно привести следующие доработки:
1) Добавление новых видов отчетов.
2) Добавление интерфейсной части по редактированию исходной базы данных (устройство на работу новых сотрудников, расширение автопарка).
3) Добавление учета посещаемости занятий.
4) Анализ сдачи экзаменов по сезонам.
1. Горных Е. Н. Программирование на VBA.: Учебное пособие - Челябинск: Изд. ЮУрГУ, 2003.-76 с.
2. Уокенбах Джон. Профессиональное программирование на VBA в Excel 2002.:Пер. с англ. – М.: Издательский дом «Вильямс», 2003. – 784 с.
Здесь содержатся некоторые листинги кода.
Кнопка “Клиенты”:
Private Sub bt_client_Click()
MainForm.Hide
ClientForm.Show (0)
End Sub
Кнопка “Выход”:
Private Sub bt_exit_Click()
Application.DisplayFormulaBar = True
Application.CommandBars("Standard").Visible = True
Application.CommandBars("Formatting").Visible = True
Workbooks("cursed2ex.xls").Save
Workbooks("cursed2ex.xls").Close
Кнопка “Группы”:
Private Sub bt_group_Click()
GroupForm.Show (0)
Кнопка “Статистика сдачи”:
Private Sub bt_stat_Click()
StatForm.Show (0)
Кнопка “Статистика инструкторов”:
Private Sub CommandButton1_Click()
InstrForm.Show (0)
Кнопка “Справка”:
Private Sub CommandButton2_Click()
MainHelpForm.Show (0)
Активация главной формы:
Private Sub UserForm_Activate()
Dim x, y As Integer
x = 0
y = 0
Sheets("База").Activate
Cells(1, 1).Select
all = Selection.CurrentRegion.Rows.Count
For i = 2 To all
If Sheets("База").Cells(i, 29) = "Ожидает" Then
x = x + 1
End If
Next i
If Sheets("База").Cells(i, 29) = "Обучаемый" Then
y = y + 1
Sheets("Данные").Activate
If Sheets("Данные").Range("I2") = "" Then lb_beg.Caption = "Не установлено" Else lb_beg.Caption = Sheets("Данные").Range("I2")
If Sheets("Данные").Range("J2") = "" Then lb_end.Caption = "Не установлено" Else lb_end.Caption = Sheets("Данные").Range("J2")
If lb_beg.Caption = "Не установлено" Then lb_rest.Caption = "Не установлено" Else lb_rest.Caption = CDate(lb_end.Caption) - Date
Кнопка “Все ясно!”:
MainHelpForm.Hide
MainForm.Show (0)
Завершение работы формы:
Private Sub UserForm_Terminate()
Активация формы:
Здесь листинг опущен, так как происходит лишь установка значений текстовых полей, которые очень объемны, по своему содержанию.
Кнопка “Закрыть”:
Private Sub bt_exitgroup_Click()
GroupForm.Hide
Кнопка “Сформировать группу”:
Private Sub bt_newgroup_Click()
Sheets("База").Cells(1, 1).Select
If x = 0 Or y > 0 Then
z = MsgBox("Нельзя сформировать группу! ", vbCritical + vbOKOnly, "Автошкола")
Else
CreateGroupForm.Show (0)
Кнопка “Выпустить группу”:
Private Sub bt_unform_Click()
If CDate(Sheets("Данные").Range("J2")) <= Date And lb_cur.ListCount > 0 Then
x = MsgBox("Вы подтверждаете окончание обучения группы?", vbQuestion + vbYesNo, "Автошкола")
If x = 6 Then
If Sheets("База").Cells(i, 29) = "Обучаемый" Then Cells(i, 29) = "Окончил"
lb_cur.Clear
Sheets("Данные").Range("H2") = ""
Sheets("Данные").Range("I2") = ""
Sheets("Данные").Range("J2") = ""
If lb_cur.ListCount > 0 Then
x = MsgBox("Программа обучения еще не пройдена!", vbCritical + vbOKOnly, "Автошкола")
x = MsgBox("Группа не набрана!", vbCritical + vbOKOnly, "Автошкола")
lb_next.Clear
If Sheets("База").Cells(i, 29) = "Обучаемый" Then lb_cur.AddItem (Sheets("База").Cells(i, 2) & " " & Sheets("База").Cells(i, 3) & " " & Sheets("База").Cells(i, 4))
If Sheets("База").Cells(i, 29) = "Ожидает" Then lb_next.AddItem (Sheets("База").Cells(i, 2) & " " & Sheets("База").Cells(i, 3) & " " & Sheets("База").Cells(i, 4))
Страницы: 1, 2, 3, 4, 5, 6