Макрокоманда | Назначение |
ЗапускПриложения | Запускает приложение MS-DOS или Microsoft Windows |
АВТОМАТИЗАЦИЯ ПРИЛОЖЕНИЯ С ПОМОЩЬЮ МАКРОСОВ
Вы изучили, как выполняются типичные задачи с помощью команд меню и кнопок на панелях инструментов. При работе со своей БД вы могли заметить, что определенные задачи выполняются чаще или регулярнее. Вы можете автоматизировать их, используя макросы для выполнения повторяющихся операций, а затем связывая макросы с такими свойствами событий форм и элементов управления, как свойство формы Текущая запись, свойство командной кнопки Нажатие кнопки или свойство поля Двойное нажатие кнопки. При создании макросов для автоматизации повторяющихся задач вам часто придется ссылаться на форму, отчет или элемент управления формы, чтобы установить свойства или значения.
Ссылки на формы и отчеты
Вы можете ссылаться на форму или отчет по имени, но прежде нужно сообщить Access в какое семейство входит данный объект. Открытые формы находятся в семействе Forms, открытые отчеты – в семействе Reports. Поэтому ссылка на форму или отчет включает в себя имя семейства, за которым следует восклицательный знак, а затем - имя объекта. Если имя объекта не содержит пробелов или специальных символов, то можно просто ввести это имя. Если же пробелы или специальные символы есть, то имя необходимо заключить в квадратные скобки.
Ссылки на свойства форм и отчетов
Для задания ссылки на свойство формы или отчета укажите идентификатор формы или отчета, затем введите точку и после точки добавьте имя свойства. Большинство свойств формы или отчета можно увидеть в режиме конструктора, открыв окно свойств. В Access многие свойства формы можно изменять в режиме формы, а свойства отчета Печать и Форматирование – во время вывода на экран или печати отчета.
Ссылки на элементы управления форм и отчетов и на их свойства
При задании ссылки на элемент управления формы или отчета сначала укажите идентификатор формы или отчета, затем поставьте восклицательный знак и далее добавьте имя элемента управления, заключенное в квадратные скобки. При создании ссылки на свойство элемента управления запишите ссылку на него, и после точки укажите имя свойства. Список большинства свойств элементов управления вы можете увидеть при просмотре формы или отчета в режиме конструктора, выделив нужный элемент управления и открыв окно свойств. Большую часть свойств элементов управления можно изменять в режиме конструктора форм или отчетов.
Ссылки на подчиненные формы и отчеты
Форма, внедренная в другую форму или отчет, содержится в элементе управления Подчиненная форма. Отчет, внедренный внутрь другого отчета, содержится в элементе управления Подчиненный отчет. Ссылаться на подчиненную форму или отчет можно точно так же, как и на любой другой элемент управления. Элемент управления Подчиненная форма имеет специальное свойство Form, которое позволяет ссылаться на форму, внедренную в этот элемент управления. Аналогично, Элемент управления Подчиненный отчет имеет свойство Report, позволяющее ссылаться на отчет, внедренный в этот элемент управления.
Открытие связанной формы
Использование подчиненной формы непрактично в следующих случаях:
· Для просмотра связанных данных требуется внедрение двух или больше подчиненных форм;
· Основная форма слишком мала для отображения всей подчиненной формы;
· Связанная информация вам требуется только время от времени;
В таких случаях для просмотра связанных данных лучше использовать отдельную форму, которую можно открыть с помощью одного из свойств событий. Для предоставления пользователю доступа к связанным данным можно использовать командную кнопку или свойство события Двойное нажатие кнопки элемента управления в основной форме. Этот способ позволяет избежать загромождения экрана, облегчает работу с основной формой, ускоряет переход от одной записи к другой в основной форме.
Синхронизация связанных форм
При открытии дополнительной формы из основной на основе совпадения двух связанных полей в этих формах, данные в дополнительной форме не изменяются при перемещении по записям в основной форме. Необходимо создать макрос для синхронизации вывода данных в двух связанных формах. В окне БД перейдите на вкладку Макросы и нажмите кнопку Создать. Создайте макрос, выбирая макрокоманды в столбце Макрокоманды и вводя соответствующие комментарии в столбце Примечания. Этот макрос имеет пару условий выполнения макрокоманд. Первое условие можно выразить словами: Если основная форма не загружена, выполнить первую макрокоманду – Остановить макрос. Таким образом, если основная форма не открыта, то выполняется макрокоманда Остановить макрос и работа макроса прекращается. Вы можете использовать макрокоманду Применить фильтр для отбора записей в основной форме, но она работает только в том случае, если в текущий момент форма имеет фокус. Макрокоманда Выделить объект позволяет решить эту задачу, но зачем использовать две макрокоманды, если достаточно одной? Оказывается, что вы можете снова выполнить макрокоманду Открыть форму с тем же самым условием отбора, чтобы вывести в форме нужную строку. Если форма уже открыта, макрокоманда Открыть форму устанавливает в ней фокус и применяет заданное условие отбора. Однако ссылаться на «пустое» значение не очень хорошо. При переходе на последнюю запись в основной форме или выборе команды Правка->Перейти->Новая запись вы окажетесь на новой записи, в которой связанное поле не имеет значения. Поэтому имеет смысл организовать проверку значения Null, чтобы скрыть дополнительную форму при нахождении на пустой строке в основной форме. Для проверки этого условия во второй строке макроса используется встроенная функция IsNull. Если значение связанного поля равно Null, макрос скрывает дополнительную форму, устанавливая ее свойство Вывод на экран в значение Ложь. Обратите внимание, что хотя форма не видна на экране, она все равно остается открытой. После создания синхронизирующего макроса необходимо связать его со свойством Текущая запись основной формы. Перейдите на вкладку Формы окна БД и откройте основную форму в режиме конструктора. В конструкторе форм нажмите кнопку Свойства на панели инструментов, затем щелкните в ячейке свойства Текущая запись и в раскрывающемся списке выберите созданный макрос. Сохраните форму и откройте ее в режиме формы, проверьте работу созданного макроса, переходя на другие записи в основной форме. При переходе на пустую запись, дополнительная форма должна исчезнуть с экрана.
Рассмотренный способ синхронизации двух форм, содержащих связанные данные, работает почти с любым набором форм и может использоваться в различных ситуациях.
Создание специальной панели инструментов для форм
После завершения создания приложения некоторые из средств разработки Access могут оказаться ненужными. Может быть, вы захотите иметь на панели инструментов формы несколько дополнительных кнопок, обеспечивающих прямой доступ к таким командам, как Сохранить запись и Найти следующую. В этом случае можно создать специальную панель инструментов, которая будет появляться на экране при работе с любой из форм приложения.
Чтобы создать и открыть новую нестандартную (специальную) панель инструментов, щелкните в окне БД, выберите команду Вид->Панели инструментов и нажмите кнопку Создать в окне диалога Панели инструментов. Access предоставит вам возможность присвоить панели инструментов содержательное имя. После появления новой панели вы можете нажать кнопку Настройка в окне диалога Панели инструментов, чтобы добавить в нее кнопки и расположить их по своему усмотрению, вы также можете изменить внешний вид кнопок.
Создание специальной строки меню для форм
После создания специальной панели инструментов формы полезно и логично заменить стандартную строку меню для форм на специальную. После этого вы можете установить значения свойства Строка меню ваших форм таким образом, чтобы они указывали на макрос этой строки меню.
Чтобы определить специальную строку меню, сначала создайте макрос строки меню, определяющий меню, которые будут появляться в этой строке. Для каждого меню вы должны включить в макрос макрокоманду ДобавитьМеню, и в качестве значения аргумента Название меню указать название этого меню. При этом аргумент Имя макроса должен указывать на макрос, определяющий команды меню. Символ & (амперсанд) определяет так называемую назначенную клавишу для этого меню, с его помощью вы можете определить для каждой команды клавишу быстрого доступа. Вы можете вставить линию между разделами меню, введя в столбец Имя макроса знак «минус» (-). Макрос, определяющий команду меню, может содержать либо другую макрокоманду ДобавитьМеню, добавляющую подчиненное меню, либо последовательность макрокоманд, которые будут выполняться при выборе команды. В большинстве случаев вы будете использовать макрокоманду КомандаМеню, чтобы сделать команду встроенного меню доступной из специальной строки меню. Но можно выполнять и любые другие макрокоманды, включая те, что запускают другой макрос или функцию VBA. Определение полного набора макросов – довольно трудоемкий процесс, особенно в том случае, если вы хотите создать различные специальные строки меню для разных форм. К счастью, при создании макросов меню в Access вы можете воспользоваться помощью построителя меню. Переключитесь в окно БД и выберите команду Сервис->Надстройки->Построитель меню. Access запустит построитель меню и выведет на экран его окно диалога. Здесь перечислены все макросы в текущей БД. Выделите имя макроса, определяющего строку меню, нажмите кнопку Изменить и просмотрите определение строки меню. При необходимости внесите в него изменения. В этом же окне можно удалить макрос, выделив его имя и нажав кнопку Удалить. При удалении макроса строки меню построитель меню удалит также макросы, определяющие меню, входящие в эту строку. Чтобы начать определение нового набора макросов для строки меню, нажмите кнопку Создать. Построитель меню выведет на экран окно диалога для выбора шаблона. Поскольку мы хотим лишь немного изменить строку меню для всех форм в текущем приложении, хорошей основой может стать строка меню Форма. Выберите шаблон Форма и нажмите ОК. Построитель меню выведет этот шаблон в окне диалога Построитель меню-[Новая строка меню]. В списке, расположенном в нижней части окна диалога, вы можете выбрать любой элемент определения строки меню и просмотреть его подробное описание. Если этот элемент выполняет макрокоманду, то в верхней части окна вы увидите имя макрокоманды и ее аргументы. Построитель меню поддерживает следующие макрокоманды: ДобавитьМеню, КомандаМеню, ЗапускМакроса и ЗапускПрограммы. Если вам нужно определить команду меню, выполняющую более сложное действие, вы можете с помощью построителя меню создать скелет макроса, а затем отредактировать его. Для перемещения выделенного элемента в списке можно пользоваться кнопками со стрелками. Нажатие кнопки Далее перемещает выделение на следующий элемент в списке.