Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA_Labs.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
8.08 Mб
Скачать

61

Лабораторные работы Лабораторная работа № 1 Анализ процедуры обработки события, формируемой мастером

Цель лабораторной работы: произвести анализ процедуры обработки события, формируемой мастером.

Программы VBA могут создаваться не только пользователем, но и автомати­чески при работе мастеров Access. Рассмотрим пример процедуры обработки события, созданной мастером кнопок.

Пусть в форме для просмотра информации о группе по желанию пользова­теля можно открывать список студентов текущей группы. Для этого:

  1. Создадим форму Группа на основе одноименной таблицы, воспользовавшись режимом Автоформа: в столбец, а также форму Студент, воспользовавшись режимом Автоформа: ленточная.

Рис. 1.1. Форма Группа с кнопкой для вызова формы Студент

  1. Откроем форму Группа в режиме конструктора и добавим в нее кнопку для открытия формы Студент, воспользовавшись мастером. Для отображения в открываемой форме Студент только связанных записей необходимо при создании кнопки выбрать в окне мастера строку Открыть форму для отобранных записей и выбрать поле НГ, по которому осуществляется связь форм и отбор записей подчиненной формы. Дадим кнопке имя Список студентов (рис.1.1).

  2. Создав такую кнопку, перейдем в режим формы и убедимся, что при щелчке на этой кнопке открывается форма Студент, и в ней отображаются все записи, связанные с текущей записью формы Группа.

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

  1. Выделите в окне базы данных форму Группа, нажмите на панели инструментов кнопку Программа. Открывается окно редактора VBA и в нем окно модуля формы, связанного с формой Группа. При этом форма открывается в режиме конструктора. В режиме конструктора форм модуль открывается кнопкой Программа.

  2. В верхней части окна модуля формы откройте список Object. Название списка отображает всплывающая подсказка. В этом списке представлен общий раздел модуля формы (General), раздел самой формы (Form) и разделы для каждого элемента в форме. Для просмотра процедур, связанных с кнопкой СПИСОК_СТУДЕНТОВ, выберите этот элемент из списка.

  3. В верхней части окна модуля формы в списке Procedure отображается значение Click, соответствующее событию Нажатие кнопки для выбранного в левом списке раздела. Для просмотра всех событий, которые могут вырабатываться для выбранного элемента, откройте список. В списке жирным шрифтом выделены те события, для которых имеются процедуры обработки события.

  4. В рабочем пространстве окна модуля могут отображаться либо все процедуры формы, либо только одна процедура, связанная с выбранным элементом и событием. Для отображения только процедуры с именем Список_студентов_Click() щелкните в нижнем левом углу окна на кнопке Procedure View. Для представления полного модуля щелкните на кнопке Full Module View.

  5. Чтобы увидеть, где устанавливается связь процедуры с событием, переключитесь в окно формы Группа, открытом в режиме конструктора и в контекстном меню кнопки Список студентов выберите Свойства. В открывшемся окне свойств на вкладке События представлены все события кнопки и для события Нажатие кнопки выбрано значение [Процедура обработки событий].

  6. Щелкните на кнопке Построить в конце строки рассматриваемого события. Вы снова перейдете в окно модуля формы на процедуру обработки события Нажатие кнопки.

Процедура обработки события является личной (Private) процедурой типа Sub. Инструкция Sub объявляет процедуру-подпрограмму с составным име­нем Список_студентов_Click(), включающим имя кнопки и имя события. Пустые круглые скобки говорят об отсутствии аргументов. Инструкция End sub завершает текст процедуры.

Рассмотрим текст программы, записанный между инструкциями Sub и End Sub.

Инструкция

DoCmd.OpenForm stDocName, , , stLinkCriteria

реализует главную функцию процедуры — открывает форму Студент.

DoCmd является объектом активного приложения Access, предназначенным для выполнения макрокоманд.

OpenForm — метод, применяемый к данному объекту. Реализует выполнение макрокоманды Открыть форму. Методу передаются два аргумента: первый из передаваемых аргументов задает имя открываемой формы, второй передает строковое выражение, задающее условие отбора записей в открываемой форме. В данной инструкции для хранения значений аргументов используются переменные строкового типа stDocName, , , stLinkCriteria.

В процедуре эти переменные ранее явно описываются инструкцией Dim:

Dim stDocName As String

Dim stLinkCriteria As String

Для переменных указываются имена stDocName и stLinkCriteria и String - строковый тип данных.

Прежде чем использовать переменные, описанные в процедуре, им должны быть присвоены значения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]