
- •Лабораторные работы Лабораторная работа № 1 Анализ процедуры обработки события, формируемой мастером
- •Инструкции
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа № 2 Выполнение запросов в процедуре обработки события
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №3 Поиск данных с использованием индексов
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №4 Создание новой таблицы в базе данных
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №5 Фильтрация записей формы по значению, выбранному из списка другой формы
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №6 Создание таблицы и заполнение ее записями
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №7 Расчет в текущей записи однотабличной формы и обновление таблицы
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №10 Создание таблицы с помощью инструкции sql
- •Сортировка записей и ключевое слово order by
- •Ограничение набора записей с использованием критерия отбора
- •Обработка групп данных
- •Использование соединений для связи записей
- •Select студент.Нг, студент.Нс, студент.Фио, успеваемость.Кп, успеваемость.Табн, успеваемость.Видз, успеваемость.Оценка
- •Запросы на изменение
- •Откройте базу данных Учебный процесс.
- •Задание для самостоятельной работы
- •Используя инструкции sql, обеспечьте сортировку записей таблицы izd в базе данных Изделия в алфавитном порядке.
- •Используя форму sql базы данных Изделия, обеспечьте вывод только тех записей из таблицы отгрузка, для которых поле Количество отгружаемого товара имеет значение меньшее 60.
Лабораторные работы Лабораторная работа № 1 Анализ процедуры обработки события, формируемой мастером
Цель лабораторной работы: произвести анализ процедуры обработки события, формируемой мастером.
Программы VBA могут создаваться не только пользователем, но и автоматически при работе мастеров Access. Рассмотрим пример процедуры обработки события, созданной мастером кнопок.
Пусть в форме для просмотра информации о группе по желанию пользователя можно открывать список студентов текущей группы. Для этого:
Создадим форму Группа на основе одноименной таблицы, воспользовавшись режимом Автоформа: в столбец, а также форму Студент, воспользовавшись режимом Автоформа: ленточная.
Рис. 1.1. Форма Группа с кнопкой для вызова формы Студент
Откроем форму Группа в режиме конструктора и добавим в нее кнопку для открытия формы Студент, воспользовавшись мастером. Для отображения в открываемой форме Студент только связанных записей необходимо при создании кнопки выбрать в окне мастера строку Открыть форму для отобранных записей и выбрать поле НГ, по которому осуществляется связь форм и отбор записей подчиненной формы. Дадим кнопке имя Список студентов (рис.1.1).
Создав такую кнопку, перейдем в режим формы и убедимся, что при щелчке на этой кнопке открывается форма Студент, и в ней отображаются все записи, связанные с текущей записью формы Группа.
Процедура, сформированная мастером для открытия формы Студент, имеет стандартную структуру, в которую включена инструкция перехвата ошибок, описаны переменные, им присвоены значения, выполнены основные действия, вставлена программа обработки ошибок. Откроем и проанализируем эту процедуру.
Выделите в окне базы данных форму Группа, нажмите на панели инструментов кнопку Программа. Открывается окно редактора VBA и в нем окно модуля формы, связанного с формой Группа. При этом форма открывается в режиме конструктора. В режиме конструктора форм модуль открывается кнопкой Программа.
В верхней части окна модуля формы откройте список Object. Название списка отображает всплывающая подсказка. В этом списке представлен общий раздел модуля формы (General), раздел самой формы (Form) и разделы для каждого элемента в форме. Для просмотра процедур, связанных с кнопкой СПИСОК_СТУДЕНТОВ, выберите этот элемент из списка.
В верхней части окна модуля формы в списке Procedure отображается значение Click, соответствующее событию Нажатие кнопки для выбранного в левом списке раздела. Для просмотра всех событий, которые могут вырабатываться для выбранного элемента, откройте список. В списке жирным шрифтом выделены те события, для которых имеются процедуры обработки события.
В рабочем пространстве окна модуля могут отображаться либо все процедуры формы, либо только одна процедура, связанная с выбранным элементом и событием. Для отображения только процедуры с именем Список_студентов_Click() щелкните в нижнем левом углу окна на кнопке Procedure View. Для представления полного модуля щелкните на кнопке Full Module View.
Чтобы увидеть, где устанавливается связь процедуры с событием, переключитесь в окно формы Группа, открытом в режиме конструктора и в контекстном меню кнопки Список студентов выберите Свойства. В открывшемся окне свойств на вкладке События представлены все события кнопки и для события Нажатие кнопки выбрано значение [Процедура обработки событий].
Щелкните на кнопке Построить в конце строки рассматриваемого события. Вы снова перейдете в окно модуля формы на процедуру обработки события Нажатие кнопки.
Процедура обработки события является личной (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 - строковый тип данных.
Прежде чем использовать переменные, описанные в процедуре, им должны быть присвоены значения.