Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ В СРЕДЕ УНИВЕРСАЛЬНОЙ СУБД MS ACCESS.DOC
Скачиваний:
74
Добавлен:
01.05.2014
Размер:
217.09 Кб
Скачать

2.4. Применение функциональной процедуры

Для связывания разработанной функциональной процедуры с вы­числяемым полем в Access предусмотрен ряд способов. Способ связы­вания функциональной процедуры зависит от ее типа. Функциональные процедуры можно связывать с событиями. Это значит, что такая про­цедура может вызываться при выполнении щелчка «мышью» на некотором поле. Можно вызвать ее также и из макрокоманды или из другой процедуры. Результат выполнения функциональной процедуры может применяться:

- в качестве значения по умолчанию для поля таблицы;

- в качестве значения критерия для запросов или фильтров;

- в качестве содержимого поля.

В рассматриваемом примере оформления прейскуранта следует воспользоваться ориентированным на событие вызовом функции внутри формуляра Прейскурант. Так как пересчет цены в доллары должен происходить после ввода цены в марках, вызов функциональной про­цедуры должен осуществляться после обновления поля цены в DM. Для реализации данного способа необходимо задать в свойствах поля DM (цена в DM) в качестве значения опции After Update (после обновления) вызов функции в такой форме:

= Марки_в_Доллары( )

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

2.5. Значение функциональной процедуры

В приведенном примере присвоение целевому объекту (полю) вычисленного значения выполняется специальным оператором присвое­ния внутри функции, но обычно функции возвращают вычисленное зна­чение. Для того чтобы функция вернула некоторое значение, внутри тела функции это значение должно быть присвоено имени функции. Например, функция Коэффициент_пересчета ( ), возвращающая коэффи­циент пересчета марок в доллары, должна выглядеть так:

Function Коэффициент_пересчета ( )

Коэффициент_пересчета = 1.63

End Function

2.6. Аргументы функции

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

Пример подобной функции приведен ниже:

Function Марки_в_Доллары (Коэффициент)

Forms![Прейскурант]!USD = Forms![Прейскурант]!DM / Коэффициент

End Function

Вызывая эту функции, значение аргумента следует указать в скобках:

= Марки_в_Доллары( 1.63 )

3. Порядок выполнения работы

В процессе выполнения работы требуется разработать модуль на языке Access Basic, содержащий ряд вспомогательных функций, обес­печивающих работу базы данных DEKANAT.

1. Войдите в среду Windows и вызовите СУБД Access. Открой­те в рабочем каталоге базу DEKANAT.

2. Откройте окно модуля в базе данных и создайте модуль Инструменты, в который должны входить две вспомогательные функ­ции: Рубли_в_USD и Сумма_часов. Функция Рубли_в_USD должна вычис­лять долларовый эквивалент стипендии студента и быть ориентирована на использование в формуляре Карточка_студента. Функция Сумма_часов предназначена для подсчета общего количества учебных часов по каждой дисциплине и должна быть связана с формуляром Карточ­ка_дисциплины.

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

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

5. Выполните отладку функций модуля Инструменты и проверь­те правильность их выполнения в составе СУБД Деканат.

Соседние файлы в предмете Базы данных