При создании модулей наряду с процедурами-функциями широко при меняются подпрограммы. На языке VBA подпрограммы называют процедурами-подпрограммами и обозначают ключевым словом Sub. В отличие от процедур-функций (функций) процедуры-подпрограммы (подпрограммы) выполняя свои задачи, могут не возвращать результирующие значения Подпрограмму можно запускать из других процедур, но ее нельзя вызвать так, как функцию, указав имя в выражении или операторе.
Рассмотренная функция Рубли_в_Доллары может быть оформлена как подпрограмма, поскольку в ней не формируется возвращаемое значение.
Оформим вычислительную часть процедуры Рубли_в_Доллары как подпрограмму Вычисление и вызовем ее в функции Рубли_в_Доллары. Начнем с создания подпрограммы:
Откройте модуль Прейскурантные расчеты в режиме конструктора.
• Выберите в меню Вставкакоманду Процедура.
• В открывшемся окне активизируйте переключатель подпрограмма (Sub),
введите имя Вычисление и нажмите кнопку ОК.
Итак, в модуль включена новая процедура. Access 97 автоматически вводит в окно модуля начальную и конечную строки подпрограммы. Ключевое слово Sub указывает на то, что речь идет о подпрограмме:
Public Sub Вычисление () End Sub
Далее необходимо через буфер обмена скопировать операторы из функции Рубли_в_Доллары в создаваемую подпрограмму. Для этой цели сконфигурируйте окно модуля таким образом, чтобы на экране одновременно отображались обе процедуры.
• Разделите окно модуля на две панели посредством вешки разбивки (она находится над бегунком вертикальной полосы прокрутки).
• Выполните щелчок в верхней панели и выберите в списке процедур функцию Рубли_в_Доллары. В нижней панели по-прежнему будет отображаться подпрограмма Вычисление.
• Поместите курсор в строке оператора присваивания, определяющего цену в долларах, и нажмите клавиши [Ctrl+Y]. Строка будет вырезана и помещена в буфер обмена.
• Введите новый оператор вызова подпрограммы Вычисление.
• Выполните щелчок в нижней панели и поместите курсор в пустую строку между начальной и конечной строками подпрограммы Вычисление.
•Вставьте в эту строку содержимое буфера обмена с помощью клавиш
[Ctrl+V].
Рис. 6.9. Определение и вызов подпрограммы
Теперь выражение для пересчета цен определено как подпрограмма, которая может быть вызвана из любой процедуры базы данных. Вызов подпрограммы осуществляется посредством оператора вызова, в котором указывается имя подпрограммы (скобки в данном случае не ставятся).
Чтобы отменить разделение окна модуля на панели, достаточно перетащить вешку разбивки под строку заголовка.
В режиме просмотра Представление полного модулянет необходимости в разделении окна модуля.