MS Access — Создание универсальной подформы для задания свойств элементов управления в подформе

#ms-access #reference #subform

Вопрос:

У меня есть универсальный модуль, который я могу вызвать из любой формы, и он включит все текстовые поля и поля со списком, для свойства тега которых установлено значение «EnableForReadOnly». Я хотел бы создать что-то подобное для подформ.

     Public Sub EnableReadOnlyControls(theForm)

Dim i As Integer
' Cycle through the form's controls,

For i = 0 To theForm.Count - 1
    If theForm(i).Tag = "EnableForReadOnly" Then
        If TypeOf theForm(i) Is TextBox Then
            theForm(i).Locked = False
            theForm(i).Enabled = True
        ElseIf TypeOf theForm(i) Is ComboBox Then
            theForm(i).Locked = False
            theForm(i).Enabled = True
        End If
    End If
Next i
 

Конец Суб

Чтобы вызвать этот подраздел из формы, в событии onOpen формы я набираю следующее, и это отлично работает:

 EnableReadOnlyControls Me
 

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

Комментарии:

1. Вы можете просто использовать ту же функцию. EnableReadOnlyControls Me.SubformControl.Form . Или вызов, который у вас есть, в событии открытия подформы.

2. Спасибо @Andre, что сработало идеально!

Ответ №1:

Я публикую комментарий Андре здесь в качестве ответа. Спасибо, Андре!

«Вы можете просто использовать ту же функцию. EnableReadOnlyControls Меня.Подчиненная форма.Форма. Или вызов, который у вас есть, в открытом событии подформы.»

Пример: Имя элемента управления подформы в моей основной форме-frmCounterTopSub, поэтому я добавил эту строку в свой код, и это сработало как заклинание:

 EnableReadOnlyControls Me.frmCounterTopSub.Form