Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тойота_макросы_модули.doc
Скачиваний:
2
Добавлен:
20.11.2019
Размер:
2.34 Mб
Скачать

Использование процедуры-функции в отчетах

В рассматриваемом примере используется функция, вызываемая из отчета Информация о ценах. Вызов функции будет происходить во время обработки полей в Области данных отчета при просмотре отчета.

• Открыть отчет Информация о ценах в режиме конструктора.

• На панели элементов активизировать кнопку Поле и перенести ее в свободное место области данных отчета. Текстовое поле «Поле N» пометить и удалить; для поля «Свободный» открыть окно Свойств и в закладке Данные поля «Данные» воспользоваться построителем выражений. Для этого надлежит нажать кнопку с тремя точками. В результате на экране появится диалоговое окно Построитель, где выбрать построитель выражений, вследствие чего произойдет его запуск и откроется диалоговое окно.

В левом списке окна построителя найти папку с функциями и двойным щелчком открыть ее. Выбрать функции базы данных Тойота_макросы_модули и открыть список модулей базы. Затем дважды щелкнуть на функции Анализ_цен_прейскуранта (в третьем столбце). В верхней области диалогового окна будет сформировано выражение для вызова функции Анализ_цен_прейскуранта. Нажать кнопку ОК и управление перейдет к конструктору отчетов. Сохранить отчет. С этого момента значение области данных Цена 6 рублях будет анализироваться при просмотре отчета и соответствующие результаты будут помещаться в окно отладки (см. раздел Работа с окном отладки).

Примечание; В прилагаемой к описанию базе данных Тойота_макросы_модули приведен вариант использования функции Анализ_заводской_цены в отчете Обзор заказов, которая позволяет вывести в окно отладки фамилии клиентов и модели приобретенных ими автомобилей, заводская цена которых превышает 37000 р.

Применение процедур-подпрограмм

При создании модулей наряду с процедурами-функциями широко при меняются подпрограммы. На языке VBA подпрограммы называют процедурами-подпрограммами и обозначают ключевым словом Sub. В отличие от процедур-функций (функций) процедуры-подпрограммы (подпрограммы) выполняя свои задачи, могут не возвращать результирующие значения Подпрограмму можно запускать из других процедур, но ее нельзя вызвать так, как функцию, указав имя в выражении или операторе.

Рассмотренная функция Рубли_в_Доллары может быть оформлена как под­программа, поскольку в ней не формируется возвращаемое значение.

Оформим вычислительную часть процедуры Рубли_в_Доллары как под­программу Вычисление и вызовем ее в функции Рубли_в_Доллары. Начнем с создания подпрограммы:

Откройте модуль Прейскурантные расчеты в режиме конструктора.

• Выберите в меню Вставка команду Процедура.

• В открывшемся окне активизируйте переключатель подпрограмма (Sub),

введите имя Вычисление и нажмите кнопку ОК.

Итак, в модуль включена новая процедура. Access 97 автоматически вводит в окно модуля начальную и конечную строки подпрограммы. Клю­чевое слово Sub указывает на то, что речь идет о подпрограмме:

Public Sub Вычисление () End Sub

Далее необходимо через буфер обмена скопировать операторы из функ­ции Рубли_в_Доллары в создаваемую подпрограмму. Для этой цели сконфи­гурируйте окно модуля таким образом, чтобы на экране одновременно отображались обе процедуры.

• Разделите окно модуля на две панели посредством вешки разбивки (она находится над бегунком вертикальной полосы прокрутки).

• Выполните щелчок в верхней панели и выберите в списке процедур функцию Рубли_в_Доллары. В нижней панели по-прежнему будет отобра­жаться подпрограмма Вычисление.

• Поместите курсор в строке оператора присваивания, определяющего цену в долларах, и нажмите клавиши [Ctrl+Y]. Строка будет вырезана и помещена в буфер обмена.

• Введите новый оператор вызова подпрограммы Вычисление.

• Выполните щелчок в нижней панели и поместите курсор в пустую строку между начальной и конечной строками подпрограммы Вычисление.

• Вставьте в эту строку содержимое буфера обмена с помощью клавиш

[ Ctrl+V].

Рис. 6.9. Определение и вызов подпрограммы

Теперь выражение для пересчета цен определено как подпрограмма, которая может быть вызвана из любой процедуры базы данных. Вызов подпрограммы осуществляется посредством оператора вызова, в котором указывается имя подпрограммы (скобки в данном случае не ставятся).

Чтобы отменить разделение окна модуля на панели, достаточно перета­щить вешку разбивки под строку заголовка.

В режиме просмотра Представление полного модуля нет необходимости в разделении окна модуля.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]