Access 2002

Загружена ли форма как подчиненная


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

Хотя в Access нет специального встроенного свойства или метода, позволяющего определить, как открыта форма, сделать это несложно. Дело в том, что у подчиненной формы есть свойство Parent, возвращающее ссылку на содержащую ее форму, а у самостоятельной формы такого свойства нет. Так что можно обратиться к свойству формы Parent и посмотреть, произойдет ли ошибка.

Можно воспользоваться и тем фактом, что форма, открытая в качестве подчиненной, отсутствует в коллекции Forms. Просмотрев эту коллекцию, вы узнаете, есть ли в ней имя вашей формы. Правда, здесь возможно осложнение, связанное с тем, что в то время, когда форма открыта как подчиненная, пользователь открыл ее еще и самостоятельно.

Следующая функция из модуля basIsSubForm возвращает значение True, если переданная ей форма загружена как подчиненная, и False, если она загружена независимо. Она пытается получить имя родительской формы, и если это вызывает ошибку времени выполнения, считает, что форма не является подчиненной.

Функцию adhlsSubForm мы включили в разработанный нами класс Form Info, описание которого вы найдете в одном из следующих разделов этой главы. Если вы будете использовать этот класс в своем приложении, отдельная копия функции вам не понадобится.

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