Иллюстрированный самоучитель по Access 2002


         

Рис. 13.10. Окно редактора кода VBA


Если в модуле для некоторого события существует процедура, то это событие выделяется в списке жирным шрифтом. В данном случае таких событий нет, т. к. обработка событий в форме "Клиенты" (Customers), которую мы открыли, выполняется с помощью макросов. При попытке открытия редактора VBA автоматически создается модуль формы, который будет иметь название Fогm_Клиенты (Form_Customers).

Если теперь закрыть окно редактора кода, а затем форму, то, хотя мы не вносили никаких изменений в форму, на экране появится вопрос:

Сохранить изменения макета или структуры формы Клиенты?

(Do you want to save changes to the design of form 'Customers'?). Вопрос связан с появлением модуля формы. Если вы ответите Нет (No), модуль не будет сохранен.

Для того чтобы из программы VBA открыть форму и изменить какие-либо свойства формы или элементов управления формы, можно использовать два метода.

Макрокоманду OpenForm, как метод объекта DoCmd, например:

DoCmd.OpenForm "Товары"

Forms!Товары.RecordSource = "Товары клиента"

Ссылку на соответствующий модуль класса, например:

Form_ToBapbi. Visible = True

Рогт_Товары.RecordSource = "Товары клиента" ,|

В том и в другом случае при выполнении открывается

стандартный

экземпляр формы "Товары" (Products) и подменяется источник записей для этой формы.

VBA позволяет открывать сразу несколько экземпляров класса формы. Это может потребоваться, например, когда хотят показать в разных окнах головную организацию и дочернюю фирму. Информация о той и другой может храниться в разных записях одной таблицы, и вам необходимо открыть два экземпляра одной формы с разными записями в каждом экземпляре.

Класс формы может иметь только один стандартный экземпляр, поэтому в данном случае придется создать нестандартный экземпляр формы. Для этого в программе нужно описать переменную, типом которой является имя модуля класса формы, при этом в описание переменной включить ключевое слово New. Например, следующая команда создает новый экземпляр формы " Клиенты" (Customers) и связывает его с переменной типа Form:




Содержание  Назад  Вперед