Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
db / Практика / 5 семестр / Лабораторная №4.doc
Скачиваний:
44
Добавлен:
23.03.2015
Размер:
361.47 Кб
Скачать

11

Лабораторная работа №4 Тема: Программирование на vba

1 Доработка формы Студенты БД Студенты

На форму Студенты необходимо добавить кнопки для редактирования каждого из словарей и просмотра отчета Студенты и их оценки. Пример формы Студенты приведен на рисунке 1.

Рисунок 1 – Доработанная форма Студенты

Для добавление кнопки Редактировать словарь Факультеты на форму необходимо:

  1. перетащить кнопку с Панели элементов на форму и отказаться от использования мастера Создание кнопок;

  2. в свойствах кнопки задать надпись кнопки Редактировать словарь Факультеты;

  3. задать имя кнопки btnEditFclt;

  4. на вкладке события свойств кнопки выбрать свойство Нажатие кнопки и нажать ;

  5. в открывшемся окне VBE создать собственный модуль с помощью пунктов меню Insert->Module;

  6. созданный модуль сохранить с именем, например MyModule;

  7. указать в только что созданном модуле признак обязательного объявления переменных;

  8. вставить процедуру в модуль с помощью пунктов меню Insert->Procedure (рисунок 2)

Рисунок 2 – Добавление процедуры OpenTableFclt

  1. в тело процедуры добавить комментарий с описанием процедуры, команду для открытия таблицы Факультеты и инструкции по перехвату возможных ошибок (рисунок 3);

Рисунок 3 – Процедура OpenTableFclt

  1. проверить работоспособность процедуры;

  2. в модуле Form_Студенты в процедуре, обрабатывающей нажатие кнопки btnEditFclt вставить вызов процедуры OpenTableFclt.

Добавить оставшиеся кнопки на форму Студенты аналогично вышеописанному алгоритму.

Работа с датами и циклами

Подсчет рабочих дней

Встроенная функция VBA DateDiff быстро подсчитает общее количество календарных дней, но не существует такой функции, которая вычла бы из этого числа выходные.

В предлагаемом решении мы добавляем в форму Заказы БД Борей командную кнопку и текстовое поле. При щелчке на этой кнопке в новом текстовом поле отображается количество рабочих дней между датами начала и планового завершения проекта. Это позволит пользователю более точно оценить потенциально возможные трудозатраты.

Откройте форму Заказы в режиме конструктора и добавьте в нее командную кнопку и текстовое поле справа от элемента Дата окончания. Присвойте командной кнопке имя cmdCalculate, а текстовому полю txtBusinessDays. Установите значение свойства Вывод на экран текстового поля в Нет.

Щелкните на кнопке Code (программа) панели инструментов. Откроется окно редактора VBE и в нем окно модуля формы.

Введите следующую процедуру обработки события:

private Sub cmdCalculate_Click()

'Определяет количество рабочих дней,

'отведенных на выполнение проекта,

'исключая из общего количества выходные

Dim dtmStart As Date

Dim dtmEnd As Date

Dim intTotalDays As Integer

Dim intWeekendDays As Integer

Dim intBusinessDays As Integer

If isNull(ДатаРазмещения) Then

MsgBox "Введите дату размещения",

vbOKOnly, "Ошибка"

Exit Sub

End If

If IsNull(ДатаИсполнения) Then

MsgBox "Введите дату исполнения",

vbOKOnly, "Error"

Exit Sub

End If

dtmStart = ДатаРазмещения

dtmEnd = ДатаИсполнения

Select Case DatePart("w", dtmStart, vbMonday)

Case Is = 6

dtmStart = DateAdd("d", dtmStart, 2)

Case Is = 7

dtmStart = DateAdd("d", dtmStart, 1)

End Select

Select Case DatePart("w", dtmEnd, vbMonday)

Case Is = 6

dtmEnd = DateAdd("d", dtmEnd, -1)

Case Is = 7

dtmEnd = DateAdd("d", dtmEnd, -2)

End Select

intTotalDays = DateDiff("d", dtmStart, dtmEnd) + 1

intWeekendDays = DateDiff("ww", dtmStart, dtmEnd, vbMonday)*2

intBusinessDays = intTotalDays - intWeekendDays

txtBusinessDays = intBusinessDays

txtBusinessDays.Visible = True

End Sub

Сохраните программу и вернитесь в Access. Для этого щелкните на кнопке View Microsoft Office Access панели инструментов редактора VBE или на кнопке формы Заказы панели задач операционной системы.

Соседние файлы в папке 5 семестр