/ / Збір змінних типу змінної, використовуючи Access & VBA - vba, ms-access, collections, types, access-vba

Зміна змінної типу колекції за допомогою Access & VBA - vba, ms-access, collections, types, access-vba

Я використовую колекцію для зберігання змінної типу SubForm але коли я йду, щоб отримати об'єкт, він має тип Controls. Чи може хто-небудь сказати мені, чому це?

For Each ctl In Me.controls
Select Case ctl.ControlType
Case acSubform
Debug.Print "subform: " & TypeName(ctl)
If (ctl.Name = "a" Or ctl.Name = "b") Then
frmCollection.Add (ctl)
End If
End Select
Next

For Each frm In frmCollection
Debug.Print "Control: " & TypeName(frm)
Next

Відповіді:

3 для відповіді № 1

Підформа - це тип контролю. Виходячи з контексту, TypeName() здається, повертається або загальний, або конкретний тип, але я не розумію, як це робить цей вибір.

Однак ви можете знайти TypeOf корисно визначити чи ні frm це підформа.

For Each frm In frmCollection
If TypeOf frm Is SubForm Then
Debug.Print "Control is a subform"
Else
Debug.Print "Control is not a subform"
End If
Next