Краткие теоретические сведения
Модуль – это набор описаний и процедур на языке Visual Basic. Каждая процедура в модуле может быть либо процедурой-функцией Function, либо процедурой-подпрограммой Sub. Существуют два типа модулей: модули класса и стандартные модули. Модули класса – это модули форм и модули отчетов, связанные с определенной формой или отчетом. Они часто содержат процедуры обработки событий, запускаемые в ответ на событие в форме или отчете. Процедуры обработки событий используются для управления поведением формы или отчета и их откликом на события, такие как нажатие кнопки. При создании первой процедуры обработки события для формы или отчета автоматически создается связанный с ней модуль формы или отчета. Стандартные модули содержат общие процедуры, не связанные ни с каким объектом. Список стандартных модулей располагается на вкладке Модули окна База данных. Макрос – набор из одной или более последовательно выполняемых операций (макрокоманд) в ответ на какое-либо событие. Макросы могут быть полезны для автоматизации часто выполняемых задач.
Задание Создать модуль класса, содержащий процедуры-подпрограммы, поддерживающие ввод дат с помощью электронного календаря. Создать макрос, содержащий две группы макрокоманд, первая должна обеспечивать вывод на экран сведений о наличии книг на руках у читателя по нажатию кнопки Поиск долгов читателя в форме Движение книг, а вторая должна выводить на экран все записи в форме Движение книг по нажатию кнопки Все записи.
Последовательность выполнения работы
Создание модуля Чтобы календарь не размещался в форме Движение книг постоянно, создайте для него отдельную форму. Для этого в окне База данных на вкладке Формы двойным щелчком выберите Создание формы в режиме конструктора. В Области данныхформыразместите электронный календарь. В окне свойств электронного календаря на закладке Другие найдите Имякалендаря, запомните его, так как оно пригодится при создании процедур модуля. Отключите в форме полосы прокрутки, область выделения, кнопки перехода и оптимизируйте размер окна формы. Сохраните форму под названием Календарь. Закройте созданную форму.
Откройте форму Движение книг в режиме Конструктораи удалите из нее ранее встроенный календарь. Выберите на панели инструментов кнопку Программа, чтобы просмотреть модуль формы. Окно редактирования модуля включает в себя четыре окна: слева вверху – Project, слева внизу Properties, справа вверху большое, содержащее коды подпрограмм и справа внизу Immediate. Рассмотрите все окна. Сейчас в большом окне справа содержится код процедуры- подпрограммы, отвечающей за работу кнопки Сведения о читателях. Под строкой End Sub – конец процедуры, введите процедуру, обеспечивающую открытие формы Калькулятор:
Private Sub Form_Open(Cancel As Integer) 'Открыть форму Календарь DoCmd.OpenForm "Календарь" 'Метод Today делает текущей датой календаря сегодняшнюю дату Forms!Календарь!Имя календаря.Today End Sub
Ниже введите процедуру, обеспечивающую ввод даты, выбранной в электронном календаре, в поле Дата_выдачи:
Private Sub Дата_выдачи_DblClick(Cancel As Integer) 'Присваивание дате значения, выбранного в календаре Дата_выдачи = Forms!Календарь!Имя календаря.Value End Sub
Ниже введите процедуру, обеспечивающую ввод даты, выбранной в электронном календаре, в поле Дата_возврата_план:
Private Sub Дата_возврата_план_DblClick(Cancel As Integer) 'Присваивание дате значения, выбранного в календаре Дата_возврата_план = Forms!Календарь!Имя календаря.Value End Sub Ниже введите процедуру, обеспечивающую ввод даты, выбранной в электронном календаре, в поле Дата_возврата_факт:
Private Sub Дата_возврата_факт_DblClick(Cancel As Integer) 'Присваивание дате значения, выбранного в календаре Дата_возврата_факт = Forms!Календарь!Имя календаря.Value End Sub Вместо слов Имя календаря в каждой процедуреукажите то имя, которое видели на закладке Другие в окне свойств электронного календаря. Чтобы вернуться из окна модуля формы в режим конструктора, выберите командуFile/Close and Return to Microsoft Access. Вызовите окно свойств формы и на закладке События в строке Открытие из списка выберите [Процедура обработки событий]. Щелкните в Области данных по полю Дата выдачи, чтобы вызвать окно свойств этого поля и на закладке События в строке Двойное нажатие кнопки из списка выберите [Процедура обработки событий]. Щелкните по полю Дата возврата план и на закладке События в строке Двойное нажатие кнопки из списка выберите [Процедура обработки событий]. Щелкните в Области данных по полю Дата возврата факт и на закладке События в строке Двойное нажатие кнопки из списка выберите [Процедура обработки событий]. Сохраните и закройте форму. Проверьте, чтобы при открытии формы Движение книг в режимепросмотра данных автоматически открывалась форма Календарь. Выберите в календаре какую-нибудь дату и дважды щелкните в поле Дата выдачи, чтобы ее ввести. Аналогичным образом введите даты в поля Дата возврата план и Дата возврата факт. Создание макроса В окне База данных перейдите на вкладку Макросыи нажмите кнопкуСоздать. Загрузится окно конструктора макросов. Выберите на панели инструментов кнопку Имена макросов, а затем кнопку Условия. В окно конструктора будут добавлены столбцы Имя макроса и Условие. Создайте группу макрокоманд, которая по нажатию кнопки Поиск долгов читателя будет последовательно выполнять следующие операции: а)отображать все записи из таблицы Журнал; б) выводить на экран диалоговое окно, запрашивающее ввод номера билета читателя; в) осуществлять отбор только тех записей в Журнале, которые содержат указанный номер билета и незаполненную ячейку в поле Дата возврата факт; г) если такие записи не найдены, то выводить на экран сообщение об отсутствии книг на руках у читателя. Для создания данной группы макрокоманд заполните верхнюю строку в окне конструктора: в столбце Имя макросаукажитеКнопка поиск, а в столбце Макрокоманда из раскрывающегося списка выберите ПоказатьВсеЗаписи. Заполните вторую строку в окне конструктора: в столбце Макрокоманда выберите ПрименитьФильтр. В нижней части окна конструктора будут добавлены аргументы макрокоманды: имя фильтра и условие отбора. Строку Имя фильтра оставьте пустой, а в строке Условие отборавведите[номер билета]=[введите номер билета] And [дата возврата факт] Is Null. Заполните третью строку в окне конструктора: в столбце Условие введите [дата выдачи] Is Null,а в столбцеМакрокоманда из раскрывающегося списка выберите Сообщение. В нижней части окна конструктора будут добавлены аргументы макрокоманды: сообщение, сигнал, тип, заголовок. В строке Сообщение введите Долгов нет, в строке Тип из раскрывающегося списка выберите Информационное, в строке Заголовок введите Сведения о наличие книг на руках у читателя. Создайте группу макрокоманд, которая по нажатию кнопки Все записи будет выводить на экран все записи в форме Движение книг. Для этого оставьте пустой четвертую строку в окне конструктора, чтобы разделить группы макрокоманд. Заполните пятую строку: в столбце Имя макросаукажите Кнопка все записи, а в столбце Макрокоманда из раскрывающегося списка выберите ПоказатьВсеЗаписи. Сохраните данный макрос под название Макрос1 и закройте окно конструктора макросов. Откройте форму Движение книг в режиме конструктора. На панели элементов выберитекнопкуКнопкаи щелкните на свободном месте в области Примечания формы. На первом шаге мастера в списке Категории выберите Разное, а в спискеДействия – Выполнить макрос. На втором шаге выберите Макрос1.кнопка поиск. На третьем шаге в поле Текст введите Поиск долгов читателя и нажмите кнопку Готово. Аналогичным способом разместите в Примечании формы кнопку Все записи. Проверьте работу кнопок. Сохраните и закройте форму. Внимание! Чтобы защитить выполненную работу на «отлично», необходимо самостоятельно создать макрос, выводящий в формате Microsoft Excel (*.xls) результат запроса Расчет размера пени. Имя файла – X:/Справка о пени.xls, режим – Автозагрузка. Макрос должен запускаться при нажатии кнопки Пени в форме Движение книг.
Контрольные вопросы 1. Что такое модуль? Объясните назначение модулей. 2. Как создать и активизировать модуль? 3. Что такое макрос? 4. Как создать и активизировать группу макрокоманд?
Лабораторная работа 8
Популярное: Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (730)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |