Введение. VBA позволяет создавать процедуры, состоящих из одних макрокоманд
VBA позволяет создавать процедуры, состоящих из одних макрокоманд. Прямые эквиваленты существуют только для некоторых из них. Для выполнения макрокоманд используется методDoCmd.Структура метода:
DoCmd.макрокоманда [аргумент],…
К макрокомандам, которые выполняются из среды VBA, относятся такие: ApplayFilter (Применит фильтр), Close (Закрыть), FindNext (Следующая запись), FindRecord (НайтиЗапись), HourGlass (Песочные часы), Maximize (Развернуть), Minimize (Свернуть), OpenForm (Открыть Форму), OpenQuery (Открыть Запрос), OpenReport (ОткрытьОтчет), ShowToolBar (ПанельИнструментов).
В данной работе будут рассмотрены процедуры, с макрокомандами открытия, закрытия формы и применить фильтр для данных в форме.
Открытие формы.Для открытия формы используется макрокоманда OpenForm. Структура метода DoCmd при этом такова:
DoCmd.OpenForm FormName, View, FilterName, WhereCondition, DataMode, WindowMode, OpenArgs
FormName–имя формы из текущей базы данных, которую нужно открыть.
View–определяет тип открытия формы. Используется одна из следующих констант: AcNormal – открывает форму в виде Форма (по умолчанию); AcDesign - открывает форму в виде Конструктор; AcFormDs – открывает форму в виде Таблица данных.
FilterName – имя запроса из текущей базы данных.
WhereCondition – SQL-выражение (слово WHERE опускается), определяющее записи, которые следует вывести на экран (например, “Страна = ‘Россия' “).
DataMode – определяет режим ввода данных, в котором открыта данная форма, на основании следующих констант: AcAdd – открывает форму в режиме Добавление (можно вносить новые записи, но нельзя редактировать имеющиеся); AcEdit – открывает форму в режиме Редактирования (можно вносить новые записи и редактировать имеющиеся); AcReadOnly – открывает форму в режиме Только просмотр ( ввод и редактирование записей невозможно).
WindowMode – определяет режим окна, в котором выводится форма. Используются константные значения: AcNormal – открывает форму в виде Обычный. Используется по умолчанию; AcHidden – открывает форму в скрытом виде; AcIcon – открывает форму в виде свернутой пиктограммы.
OpenArgs– строковое выражение, определяющее один или несколько аргументов. Эти аргументы могут использоваться в программе, написанной на VBA, в качестве модификаторов открытия формы.
Пример 1. Записать процедуру-функцию для открытия формы “Продажи” и вывести записи, удовлетворяющие следующим условиям: “Заказано” - больше 18, “Дата заказа” – 2005г., Форму открыть в виде Форма. Режим ввода данных – Редактирование.
Public Function Форма1()
DoCmd.OpenForm _
FormName:=”Продажи”, _
Wherecondition:=”Заказано> 18 and year(Дата_Заказа) =2005”, _
view:=acNormal, _
datamode:=acEdit
End Function
Пример 2. Имеется форма “Выбор студента” с полем со списком, где даны города (рис.2.1). Имеется форма "Студенты”, где даны города и фамилии студентов (рис.2.2.) В форме “Выбор студента” имеется кнопка “Выбор студента по городу”.В поле со списком выбирается город, и, нажав на кнопку, выбираются только те студенты, кто живет в данном городе. Ниже приведена простейшая процедура для кнопки.
Private Sub Кнопка3_Click()
DoCmd.OpenForm "Студенты", _
wherecondition:= "[Города]=[Forms]![Выбор студента]![Города]"
End Sub
Рис.2.1. Форма “Выбор студента”
Рис. 2.2. Форма “Студенты”
Закрытие формы.Для закрытия формы используется макрокоманда Close. Cтруктура метода DoCmd при этом такова:
DoCmd.Close ObjectType, ObjectName, Save
ObjectType – тип закрываемого объекта. Для закрытия формы используется аргумент acForm. К прочим аргументам относятся acTable, acQuery, acReport, acMacro, acModule. Если этот аргумент упущен, то производится закрытие активного объекта.
ObjectName – имя объекта, который необходимо закрыть.
Save – константа, определяющая процедуру закрытия объекта, в котором содержатся не сохраненные данные: (предлагает пользователю сохранить внесенные изменения; используется по умолчанию), acSaveYes (автоматическое сохранение внесенных изменений), acSaveNo (не сохранять внесенных изменений).
Пример 3. Записать процедуру - подпрограмму для закрытия формы ”Продажи” с автоматическим сохранением внесенных изменений.
Public Sub Закрыть ()
DoCmd.Close acForm, “Продажи”, acSaveYes
End Sub
Примечание. Для закрытия активного объекта достаточно в программе написать:
DoCmd.Close
Фильтрация данных в форме
Для фильтрации данных формы используется макрокоманда ApplyFilter. Cтруктура метода DoCmd при этом такова:
DoCmd.ApplyFilter “ Имя фильтра”,”Условие отбора”
Имя фильтра – имя запроса;
Условие отбора – выражение SQL без Where.
Пример 4.В форме “Отдел кадров” (рис. 2.3) процедура Subдля фильтрации данных по “Дата_зачисл” такова:
Sub Фильтрация_по_дате()
DoCmd.ApplyFilter "", "[Дата_зачисл]>[Введите дату]"
End Sub
При запуске программы в окне диалога выводится приглашение на вводдаты.
Рис.2.3. Форма “Отдел кадров”
2.10. Работа с объектами доступа к данным
Дата добавления: 2015-05-19; просмотров: 1885;