Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции VBA.doc
Скачиваний:
1
Добавлен:
21.04.2019
Размер:
68.1 Кб
Скачать

Работа с формами Использование различных конструкций для упрощения программирования и ускорения обработки данных в форме

Чтобы обратиться к определенному свойству формы, можно использовать операторы следующего типа. Например, объект Me. Он может использоваться для обращения к любому объекту, открытому в данный момент.

Me.Кнопка2.Visible = False

Me. Кнопка3.Enabled = True

или

Forms!Кнопки!Кнопка2.Visible = False

Forms!Кнопки!Кнопка3.Enabled = False

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

Существует более эффективный способ: определите переменную как тип формы и используйте ее для обращения к элементам управления.

DIM frmControl As Form

Set frmControl = Forms!Кнопки

frmControl! Кнопка2.Visible = True

frmControl! Кнопка3.Visible = True

При использовании такого варианта программы переменная формы задается один раз, и ссылаются на нее тоже один раз. При обращении к переменной frmControl Access известно, где искать форму в списке. Фактически, создается индекс, что позволяет намного увеличить скорость работы программы.

Однако, самый лучший способ обращения к формам – использование конструкции With … End With

With Forms!Кнопки

! Кнопка2.Visible = True

! Кнопка3.Visible = True

End With

Как видно из примера, переменная формы определяется в операторе With, причем перед каждым элементом управления ставится символ ! Все операторы в конструкции ссылаются на значение, указанное в операторе With.

********форма Финансовый результат ********************

Private Sub Form_Open(Cancel As Integer)

Me.подчиненная_форма_Фин_Рез.Visible = False

Me.подчиненная_форма_Фин_рез_руб1.Visible = False

Me.Надпись15.Visible = False

Me.Поле14.Visible = False

End Sub

Private Sub Переключатель16_Click()

Me.Переключатель16.Value = -1

Me.Переключатель18.Value = 0

Me.подчиненная_форма_Фин_Рез.Visible = True

Me.подчиненная_форма_Фин_рез_руб1.Visible = False

Me.Надпись15.Visible = False

Me.Поле14.Visible = False

End Sub

Private Sub Переключатель18_Click()

Me.Переключатель18.Value = -1

Me.Переключатель16.Value = 0

Me.подчиненная_форма_Фин_Рез.Visible = False

Me.Надпись15.Visible = True

Me.Поле14.Visible = True

End Sub

Private Sub Поле14_AfterUpdate()

Me.подчиненная_форма_Фин_рез_руб1.Requery

Me.подчиненная_форма_Фин_рез_руб1.Visible = True

End Sub

Private Sub Поле14_Click()

Me.подчиненная_форма_Фин_рез_руб1.Requery

Me.подчиненная_форма_Фин_рез_руб1.Visible = True

End Sub

Private Sub ПолеСоСписком10_AfterUpdate()

' Поиск записи, соответствующей этому элементу управления.

Dim rs As Object

Set rs = Me.Recordset.Clone

rs.FindFirst "[ns] = '" & Me![ПолеСоСписком10] & "'"

If Not rs.EOF Then Me.Bookmark = rs.Bookmark

End Sub