Access 2002

Обращение к процедуре Sub


Обращение к процедуре Sub в окне свойств задать нельзя.) Так, если для обработки события формы Current вызывается функция FormOnCurrent, для передачи ей ссылки на текущую форму в окне свойств формы можно ввести выражение:

-FormOnCurrent(Form)

Объявление функции выглядело бы примерно так:

Function FormOnCurrent(frrn as Form)

С другой стороны, если код находится в модуле формы, в нем можно использовать ссылку на текущую форму, возвращаемую свойством Me. (Свойство Me доступно только в модулях класса формы. Если функция, вызов которой определен в окне свойств, находится в другом модуле, свойство Me нельзя использовать в ней.) Таким образом, во внешней функции, объявленной выше, можно извлечь заголовок формы с помощью следующего выражения: strCaption – frm.Caption

а в модуле формы можно было бы использовать такое выражение: strCaption – Me.Caption

Если вы создаете глобальную функцию, которую собираетесь вызвать из нескольких форм, вместо того чтобы задавать обращение к этой функции в окне свойств, вызывайте ее из модулей класса форм. Тогда такой функции можно будет передать объект Me:

Call FormOnCurrent(Me)

Бывает, что нужно программным путем выяснить, существует ли в базе данных конкретная форма. Благодаря поддерживаемой Access коллекции Al 1 Forms, которая является свойством объекта CurrentProject, сделать это очень просто. Коллекция Al 1 Forms содержит ссылки на все формы текущей базы данных: просмотрите ее, и вы узнаете, какие формы в базе данных есть, а какие отсутствуют. Однако можно пойти еще дальше и написать простую функцию, позволяющую проверить базу данных на наличие не только форм, но и вообще любых объектов. Код этой функции, взятый из модуля basObjectExists, приведен  7.2. Функция adhExists получает имя и тип объекта и возвращает логическое значение, указывающее, найден он в базе данных или нет. (Тип объекта задавать не обязательно. Если его опустить, функция будет считать, что вы хотите найти форму.)

Комментарии закрыты