Access 2002

Локальные переменные


Чтобы вывести его на экран, нужно присвоить его свойству Visible значение True.

Вы не увидите созданную форму. Как только процедура завершит свою работу, Access разрушит ее локальные переменные, и форма канет в небытие, едва успев мелькнуть на экране. Как же быть? Да просто объявить переменную с такой областью видимости, чтобы форма существовала до тех пор, пока она вам нужна.

Проще всего объявить переменную frm на уровне модуля либо сделать ее статической или общедоступной. Закончив работу с формой, вы сможете освободить эту переменную следующим образом:

Этот код делает форму активной (передает ей фокус), затем закрывает ее, после чего разрывает связь между переменной frm и объектом, на который она указывала. Помните, что имя объекта для его закрытия в данном случае использовать нельзя. Метод DoCmd Close закрывает форму, имя которой передано ему в качестве параметра, а если вызвать его без параметров — тогда текущую форму. Вот поэтому перед его вызовом мы и сделали форму активной.

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

Так организована работа формы frmCustomers из базы данных CH07.MDB. Откройте эту форму и несколько раз щелкните на кнопке New Instance. Каждый раз при нажатии кнопки выполняется код, который создает новый экземпляр формы и помещает ссылку на него в пользовательскую коллекцию. Чтобы увидеть перечень всех дополнительных экземпляров формы, щелкните на кнопке List Instances в любой форме, вследствие чего в окне отладки будет выведен список их заголовков. На  7.16, как выглядит такой список.

При каждом щелчке на кнопке New Instance происходит вызов процедуры NewCustomerForm (из модуля basFormlnstance), создающей новый экземпляр формы и добавляющей ссылку на него в коллекцию экземпляров форм col Forms:

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