Использование условий в макросах. Создание макросов с использованием ссылок на объекты

img_21_2 

Если условие истинно, выполняется макрокоманда, стоящая в той же строке и все следующие за ней макрокоманды.

Если условие ложно, то макрокоманда в этой строке и все следующие за ней макрокоманды, у которых вместо условия поставлено (…) будут пропущены. Следующей будет выполняться макрокоманда с новым условием или с пустой ячейкой условия.

Ввод в столбец условия значения 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}