Введение. 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; просмотров: 1738;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.