Если условие истинно, выполняется макрокоманда, стоящая в той же строке и все следующие за ней макрокоманды.
Если условие ложно, то макрокоманда в этой строке и все следующие за ней макрокоманды, у которых вместо условия поставлено (…) будут пропущены. Следующей будет выполняться макрокоманда с новым условием или с пустой ячейкой условия.
Ввод в столбец условия значения False позволяет пропустить выполнение макрокоманды.
Для организации ветвлений наряду с условием используются макрокоманды ЗапускМакроса, Остановить макрос.
Макрокоманда ЗапускМакроса позволяет организовать также циклы в программах.
Примеры логических выражений в условии выполнения макрокоманды
1. Проверка в текущей записи формы, из которой запускается макрос:
- Значения в поле ОЦЕНКА на равенство двойке: ОЦЕНКА = 2
- Нахождение значения в поле ДАТА ИСПОЛНЕНИЯ в интервале не раньше 2-фев-95 и не позже 2-мар-95: [Дата исполнения] Between #2-фев-95# And #2-мар-95#
- Значения в поле ОЦЕНКА на равенство пустому (Null) значению: Is Null ([ОЦЕНКА]) или [ОЦЕНКА] Is Null
2. Проверка одновременного выполнения двух условий на равенство заданным значениям в поле НАЗВАНИЕ ПРЕДМЕТА и поле ОЦЕНКА: [НП]=”Информатика” And [ОЦЕНКА] = 5
3. Подсчет числа значений в поле СТЕПЕНЬ таблицы ПРЕПОДАВАТЕЛЬ и сравнение его с заданным: Dcount (“[CT]”, “ПРЕПОДАВАТЕЛЬ”)>50
4. Функция MsgBox () может быть использована для вывода на экран окна диалога, содержащего нужное сообщение, и кнопок ОК и Отмена, нажатие которых формирует то или иное значение функции.
Сравнивая значение, возвращаемое функцией MsgBox(), с заданным, пользователь может выбрать вариант действий: MsgBox ("Выдать справку?",1) = 1
Первый параметр функции задает выводимое на экран сообщение, единица на месте второго параметра определяет отображение в окне диалога кнопок ОК и Отмена (Cancel). Если пользователь нажимает кнопку ОК, функция возвращает значение "1", если кнопку Отмена, функция возвращает значение "2".
В условиях могут использоваться значения элементов управления из объектов, которые не являются текущими в данный момент.
5. Сравнение значения поля КОЛ в текущей записи формы ГРУППА с заданным: Forms![ГРУППА]![КОЛ] .
Создание макросов с использованием ссылок на объекты
Ссылаться на объекты можно по имени, но нужно учесть, что в Ассеss объекты объединяются в семейства. Таблицы объединены в семейство Таблицы (Tables), формы — в семейство Формы (Forms), отчеты — в семейство Отчеты (Reports).
Ссылка на объект: [имя семейства]![имя объекта].
Если имя включает пробелы или специальные символы, его следует заключить в квадратные cкобки.
Пример: для ссылки на форму надо записать: Forms! [Учет успеваемости].
Ссылки на свойство объекта
- Имя свойства записывается за именем объекта через точку. Перечень свойств формы или отчета можно посмотреть, открыв объект в режиме конструктора и вызвав окно его свойств.
- Имя свойства записывается без пробелов.
- Для записи ссылок на свойство объекта используются английские имена функций и свойств.
Пример: имя свойства "Область выделения" (Record Selectors) должно записываться RecordSelectors, имя свойства "Полосы прокрутки" (Sсrоll Ваrs) - SсrоllВаrs.
Для ссылки на свойство формы надо записать: Forms! [Учет успеваемости].SсrоllВаrs
Ссылки на элемент управления и его свойство
[имя семейства]![имя объекта]![имя элемента управления].имя свойства
1. В форме Учет успеваемости ссылку на элемент управления Надпись (Caption) с именем "ФИО Надпись" надо записать: Forms![Учет успеваемости]![ФИО Надпись]
2. В ссылке на свойство с именем ВыводНаЭкран, которое соответствует строке Вывод на экран на вкладке Макет (Format), надо использовать английский вариант этого имени Visible:
Forms! [Учет успеваемости] ! [ФИОНадпись].Visible
Ссылка на подчиненную форму или отчет
Записывается как ссылка на элемент управления формы (отчета), включающей данную форму (отчет).
Форма после внедрения содержится в элементе управления Подчиненная форма, отчет — в элементе управления Подчиненный отчет.
Полная ссылка на свойство элемента управления в подчиненной форме имеет в общем виде следующую структуру:
Forms![Имя формы]![Элемент Подчиненная форма].Forms![Элемент подчиненной формы].Имя Свойства
При ссылках на элемент управления в подчиненной форме или подчиненном отчете не обязательно использовать полный идентификатор формы или отчета с указанием свойств Форма или Отчет.
1. Определить ссылку на элемент управления — поле АДРЕС в подчиненной форме Студенты, встроенной в форму Группы: Forms![Группы]![Студенты]![АДРЕС]
При ссылках на элемент управления в текущей форме или отчете нет необходимости указывать идентификатор формы или отчета.
2. Для вывода суммы значений полей ЛЕК и ПР в другом поле ЧАСЫ в текущей форме ПРЕДМЕТ достаточно записать в аргументе макроса в строке Элемент выражение [ЧАСЫ], а в строке Выражение - [ЛЕК ] + [ПР].
Для вызова макроса, обеспечивающего расчет значения поля ЧАСЫ, при обновлении значений в полях ЛЕК и ПР нужно в свойствах этих полей на вкладке События в строке После обновления выбрать имя макроса "Расчет часов".
Создание ссылок построителем выражений
Ссылки на объекты, элементы управления и свойства удобно создавать с помощью построителя выражений.
Чтобы вызвать построитель выражений, надо выбрать в окне макроса строку аргумента макрокоманды, в которую требуется ввести выражение и нажать появившуюся кнопку построителя. В открывшемся окне Построитель выражений надо ввести или вставить элементы выражения в теле записи выражений.
{jcomments on}