Лучший способ разрешить событию работать с формой

В VBA у меня есть подчиненная форма, которую я использую во многих формах; однако у меня есть немного кода, где я хочу, чтобы этот код работал только в "одной форме"; поэтому, если у меня есть подчиненная форма с текстовым полем в форме 1, форме 2 и форме 3, я хочу, чтобы событие после обновления работало только для формы 2.

Каков наилучший способ сделать это?

1 ответ

Решение

Подформа имеет Parent имущество. Таким образом, вы можете проверить Name свойство подчиненной Parent,

Dim strParent As String
strParent = Me.Parent.Name
If strParent = "form 2" Then
    ' do stuff for form 2
End If

Заметки:

  1. Этот код предназначен для события после обновления текстового поля в подчиненной форме. Если целевое текстовое поле присутствует в родительской форме, это проще; просто проверьте имя родительской формы напрямую (Me.Name).
  2. Если подчиненная форма открывается сама по себе, то есть не как подчиненная форма для другой формы, Me.Parent выдаст ошибку. Затем вам нужно будет перехватить эту ошибку и проигнорировать ее.
Другие вопросы по тегам