Вызов макроса из процедуры VBA
Как мы уже говорили, процедуры VBA и макросы в Access являются объектами близкими и часто взаимозаменяемыми, т. е. вместо макроса можно использовать процедуру VBA и наоборот. Существуют способы запуска макроса из процедуры VBA, запуска процедуры VBA из макроса, кроме того, Access позволяет преобразовать макрос в процедуру VBA. Такое преобразование описано в разд. "Преобразование макросов в процедуры VBA" данной главы.
Для запуска процедуры VBA из макроса существует специальная макрокоманда ЗапускПрограммы(КипСоdе). Эта макрокоманда имеет один аргумент — имя вызываемой процедуры, хотя вызываться может только функция, а не подпрограмма.
Для запуска макроса из процедуры VBA применяется специальный метод ЗапускМакроса (RunMacro) объекта DoCmd, например:
DoCmd.RunMacro "Макрос!".
Объект DoCmd используется в процедуре VBA для выполнения макрокоманд Access. При этом английское имя нужной макрокоманды должно быть указано в качестве Метода объекта DoCmd, например строка процедуры
DoCmd.OpenForm "Клиенты"
позволяет открыть форму "Клиенты". Здесь "Клиенты"— аргумент макрокоманды. Аргументы перечисляются в предложении DoCmd через запятую. Таким способом может быть выполнено большинство макрокоманд.
Создание процедур VBA мы рассмотрим ниже, в гл. 13.