Применение макросов


Макросы могут применяться для решения самых разнообразных задач. В первом разделе данной главы мы привели таблицу макрокоманд, сгруппированных по категориям. Теперь рассмотрим применение макрокоманд некоторых категорий.
 
Работа с данными в формах и отчетах
В эту категорию входит набор макрокоманд, обеспечивающих отбор данных, перемещение по данным и обновление данных в формах. Прежде чем перейти к примерам использования макросов, покажем, как применять ссылки на формы, отчеты и элементы управления в аргументах и условиях макрокоманд, поскольку такие ссылки используются очень часто.
Ссылки на формы, отчеты и их свойства
Чтобы задать ссылку на форму или отчет, нужно сначала определить, в какое семейство (collection) входит объект, на который создается ссылка. Все открытые формы входят в семейство Формы (Forms), а открытые отчеты — в семейство Отчеты (Reports). Полная ссылка на форму или отчет должна состоять из двух частей: имяСемейства!имяОбъекта. Причем если имя объекта содержит пробелы или специальные символы, то его нужно заключить в квадратные скобки. Если пробелы в имени не используются, скобки можно не ставить. Таким образом, ссылка на форму будет выглядеть так: Forms![Заказы клиента] ИЛИ Forms!Клиенты Для отчета ссылки выглядят аналогично:
Reports! [Отчет о продажах] ИЛИ Reports!Прайс-лист Ссылка на свойство формы или отчета состоит из трех частей: имяСемейства!имяОбъекта.имяСвойства Например:
Forms!Клиенты.Visible или Reports![Продажи за период].MenuBar Свойство Вывод на экран (Visible) определяет, будет ли форма видна на экрану или спрятана, а свойство Меню (MenuBar) позволяет связать с отчетом или формой специальное меню.
Ссылки на элементы управления форм, отчетов и их свойства
Чтобы создать ссылку на элемент управления или его свойство, необходимо указать его имя. Если имя содержит пробелы, оно заключается в квадратные скобки. Ссылка на элемент управления в форме или отчете состоит из трех частей:
имяСемейства!имяОбъекта!имяЭлемента
Например, ссылка на элемент управления Номер заказа в форме "Заказы клиента" выглядит так:
Forms![Заказы клиента]![Номер заказа]
Ссылка на элемент управления Сумма в отчете "Продажи за период" выглядит так:
Reports![Продажи за период]![Сумма]
Ссылка на свойство элемента управления состоит из четырех частей:
имяСемейства!имяОбъекта!имяЭлемента.имяСвойства
Например:
Forms![Заказы клиента]![Номер заказа].Enabled
Свойство Доступ (Enabled) позволяет запретить или разрешить доступ к элементу управления.
Объект может иметь свойство, используемое по умолчанию. Это свойство применяется в том случае, когда имя свойства в ссылке явно не указано. Например, у элементов управления по умолчанию используется свойство Значение (Value), поэтому ссылка Forms! Товары! Цена позволяет получить доступ к значению, отображенному в текстовом поле "Цена".
 
Ссылки на подчиненные формы и отчеты
На подчиненную форму или отчет можно ссылаться так же, как и на любой другой элемент управления, т. к. подчиненная форма и подчиненный отчет являются одним из типов элементов управления. Например:
Forms!Заказы!ПодформаТовары
Здесь ПодформаТовары — это имя элемента управления в форме "Заказы", который представляет собой подчиненную форму.
А вот ссылка на элемент управления в подчиненной форме или отчете имеет особую структуру: после имени элемента управления, который является подчиненной формой, нужно сначала указать специальное свойство: Form — для форм или Report — для отчетов, а затем имя элемента управления, на который выполняется ссылка:

Forms!Заказы!ТоварыПодформа.Form![Код Товара]