集合更改变量类型,使用Access& VBA

时间:2012-11-16 17:00:47

标签: vba ms-access collections types access-vba

我使用Collection来存储Type 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

1 个答案:

答案 0 :(得分:3)

子表单是一种控件。根据上下文,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