Лабораторная работа №10. VBA. Отображение данных на форме
Открыть БД «Книжный магазин»; открыть форму Книги в режиме Конструктора.
Задание 1. Фильтрации с выбором критерия из выпадающего списка
1.
Для фильтрации данных на форме необходимо создать два выпадающих списка и разместить их в области Примечание формы (элемент – ПолеСоСписком):
- отбор по фамилии автора; отбор по издательству.
2.
Для загрузки данных в списки создать два SQL-запроса из таблицы Книги:
|
3. ![]()
Загрузить данные в списки: ![]()
4. В свойствах ПоляСоСписком на вкладке События найдите событие После обновления и создайте обработчик этого события в виде программы на языке VBA
:
Private Sub ПолеСоСписком2_AfterUpdate()
Me. Filter = "Автор=Forms! Книги! ПолеСоСписком2" 'условия фильтрации формы
Me. FilterOn = True 'включение фильтра
End Sub
5. Создайте кнопку и процедуру обработки события Нажатие кнопки для показа всех записей на форме (выключение фильтра).
Аналогичным образом (повторяя п.4-5) организуйте фильтрацию формы по названию издательства.
Задание 2. Фильтрация с выбором критерия из группы переключателей
1.
Создайте группу переключателей, позволяющую просматривать книги по годам издания.
Процедура обработки события После обновления Группы переключателей будет выглядеть следующим образом (использование оператора выбора case):
Private Sub Группа10_AfterUpdate()
Select Case Me. Группа56
Case 1
Me. Filter = "[Год издания]=1994"
Me. FilterOn = True
Case 2
……………….. и так далее……………..
Case 8
Me. FilterOn = False
End Select
End Sub
Задание3. Вычисляемое поле
Создайте вычисляемое поле для подсчета записей на форме. Поясняющая надпись изменяется в зависимости от выбранного элемента управления:
Задание4. Изменение отображения данных на форме в результате замены источника данных
1. Разместите на форме следующие элементы управления
: два Поля, Надпись и Флажок.
2. Создайте SQL-запрос "Запрос_диапазон", выбирающий цены в заданном диапазоне. Границы диапазона задаются в свободных полях на форме:
«…………WHERE Цена Between [Forms]![Books]!Поле10 And [Forms]![Books]!Поле12»
3.
|
Private Sub Флажок41_Click()
If Me. RecordSource = "Книги" Then
…………………………Источник записей - запрос
Else
…………………………Источник записей - запрос
End If
End Sub
Дополните процедуру, чтобы значение надписи «Найти» при щелчке по Флажку менялось на значение «Показать все».
Задание4. Поиск по любому количеству букв, введенных в свободное поле
1.
Необходимо организовать поиск книги по любому количеству первых букв названия. Для этого нужно создать SQL-запрос «По_названию»:
«………WHERE [Название книги] Like Forms! Книги! Поле14 & "*";»
2. Процедура обработки нажатия Флажка аналогична рассмотренной выше.
Задание 4. Работа со свойствами и событиями поля
Через 5 сек после открытия, область данных на форме окрашивается в другой цвет.
Общий вид формы представлен на рисунке.


