Лабораторная работа №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. 

Источник записей - таблица

 
Процедура обработки события Нажатие кнопки элемента Флажок будет выглядеть следующим образом (использование оператора if):

Private Sub Флажок41_Click()

If Me. RecordSource = "Книги" Then

…………………………Источник записей - запрос

Else

…………………………Источник записей - запрос

End If

End Sub

Дополните процедуру, чтобы значение надписи «Найти» при щелчке по Флажку менялось на значение «Показать все».

Задание4. Поиск по любому количеству букв, введенных в свободное поле

1.  Необходимо организовать поиск книги по любому количеству первых букв названия. Для этого нужно создать SQL-запрос «По_названию»:

«………WHERE [Название книги] Like Forms! Книги! Поле14 & "*";»

2.  Процедура обработки нажатия Флажка аналогична рассмотренной выше.

Задание 4. Работа со свойствами и событиями поля

Через 5 сек после открытия, область данных на форме окрашивается в другой цвет.

Общий вид формы представлен на рисунке.