Access 2002

Назначение свойства HasModule


Чтобы это сработало, у родительской формы должен быть модуль. Если у вашей формы модуля нет, откройте ее в режиме конструктора и присвойте ее свойству HasModule значение Yes. Так нужно поступать всегда, когда события формы должны обрабатываться в модуле другого класса: форма обязательно должна иметь модуль, иначе Access просто не будет генерировать для нее события.

Когда вы загружаете форму, Access загружает и связанный с ней модуль. Если у формы нет модуля, она загружается быстрее. (На самом деле все несколько сложнее, но эта схема дает достаточное представление о происходящем.) Поэтому если у формы нет программного кода, ее свойству HasModule лучше присвоить значение False, чтобы обеспечить максимально быструю загрузку. Однако если другие части вашего приложения должны реагировать на события формы (для чего в их модулях объект зтой формы объявлен с ключевым словом WithEvents), наличие модуля у формы обязательно. Если свойство формы HasModule имеет значение Fal se, Access не генерирует для нее никаких событий, в связи с чем код их обработки в других модулях никогда не вызывается.

Как отмечалось в предыдущих разделах, каждая связанная форма представляет собой нечто вроде «окна» для данных, которые лежат в ее основе. Эти данные отображаются в ней по одной записи или в виде таблицы. Такая форма обязательно поддерживает объект Recordset, которым вы можете управлять из программного кода. Для этого можно, например, создать переменную типа Recordset и присвоить ей свойство формы RecordsetCl one. Вы сможете просматривать и модифицировать те же данные, с которыми пользователь работает в форме, но поскольку указатели текущей записи у набора записей формы и у вашего объекта Recordset будут разными, пользователь не увидит, как вы переходите от записи к записи и вносите изменения.

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