Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практические работы / Практическая работа №11

.docx
Скачиваний:
25
Добавлен:
09.12.2018
Размер:
364.41 Кб
Скачать

Практическая работа №11

Создание процедуры поиска по первичному ключу

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

Язык VBA является объектно-ориентированным языком программирования. Код VBA в приложении Access собран в модули. Модуль так же является объектом базы данных. Основное содержание модулей — это процедуры на языке VBA.

Основными компонентами программы на VBA являются процедурами и функции, которые представляют собой фрагменты программного кода, заключенные между операторами Sub и End Sub или между Function и End Function.

Для создания процедуры обработки событий для форм, отчетов, элементов управления необходимо в их свойства на вкладке «События» для необходимого события выбрать из выпадающего списка значение [Процедура обработки события] и нажать на кнопке с тремя точками, после чего открывается редактор кода, куда записываются команды на языке VBA.

Ход работы

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

2. Откроем форму «Группа» в режиме конструктора и добавим в неё кнопку для открытия формы «Студент», воспользуемся мастером «Создание кнопок». При создании кнопки выберем в первом сеансе мастера в списке «Категории» строку «Работа с формой», а в списке «Действия» строку «Открыть форму».

В следующем сеансе мастера выберем форму «Студент», а в следующем сеансе – «Открыть форму для отобранных записей».

И далее выберем поле НГ, по которому осуществляется связь форм и отбор записей подчиненной формы. Присвоим кнопке имя «Список студентов».

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

4. Корректировка процедуры, созданной мастером. Откроем форму «Группа» в режиме конструктора. Установим курсор на кнопку «Список студентов» и выберем в контекстном меню команду «Обработка событий». Открывается окно модуля формы.

Скорректируем процедуру для подтверждения необходимости вывода списка студентов текущей группы. Для этого запишем инструкции как показано на рисунке ниже.

Выполнения скорректированного модуля:

5. Выполнение запросов в процедуре обработки события.

Необходимо создать процедуру, которая подключается при закрытии формы «Студент» и, если список студентов групп сокращался или пополнялся новыми записями, обновляет число студентов в группах.

5.1. Создадим запросы «Число студентов в группах» и «Обновление ГРУППА_КОЛ» для подсчета изменившегося числа студентов в группе и обновления поля КОЛ в таблице ГРУППА.

5.2. Создание запроса «ГРУППА_КОЛ». Поскольку для некоторых групп могут быть уничтожены все записи о студентах, а два предыдущих запроса не решают задачу обновления поля КОЛ, то создадим запрос обнуление «ГРУППА_КОЛ» без подчиненных в СТУДЕНТ.

5.3. Создание процедуры

Откроем форму «Студент» в режиме конструктора. В свойствах формы на вкладке «События». В раскрывающемся списке строки «Закрытие» выберем значение [Процедура обработки события] и щелкаем по значку построителя в конце строки.

Запишем следующие инструкции процедуры:

Далее откроем форму «Студент». Добавим или удалим несколько записей о студентах. Откроем таблицу «Группа» и убедимся, что процедура работает.

6. Поиск данных с использованием индексов.

Необходимо найти данные о студенте в таблице БД «Учебный процесс» по первичному ключу. Таблица «Студент» имеет составной ключ, включающий поля, номер группы НГ и номер студента в группе НС.

6.1. Для выполнения процедур поиска создадим кнопочную форму поиска. Для этого перейдем на вкладку «Создание» и выберем «Пустая форма». Поместим на форму элемент «Надпись», введем текст «Поиск данных о студенте» и расположим его примерно по середине. Ниже этого элемента разместим элемент «Кнопка» введем текст на кнопке «по идентификатору»

6.2. Создание процедуры поиска по идентификатору. Для быстрого поиска записи по первичному составному ключу используем метод Seek объекта DAO.Recordset. Для создания набора записей используем метод openRecordset объекта Database.

Перейдем в свойства созданной кнопки на вкладке «События» в строке «Нажатие кнопки» из выпадающего списка выберем [Процедура обработки событий]. Дале нажмем на кнопку с тремя точками. Откроется редактор кода, куда запишем следующий код:

6.3. Проверка выполнения модуля.

Вывод: -