我在类模块中有以下VBA代码(Access 2010,Option Explicit):
public pObservers as Collection
private Sub Class_Initialize()
Set pObservers = new Collection
End Sub
当我尝试构造类的新实例时,构造函数失败并出现编译错误:“Variable not defined”。
是的,我知道好的做法是pObservers应该是一个属性 - 我已经简化它以试图找出问题。那么应该如何我从构造函数初始化一个对象?
(我根本不知道VBA - 你可能会说。)
提前致谢。
答案 0 :(得分:1)
我无法重新创建您的问题。在名为[myClass]的Access 2010 VBA类模块中,我有
Option Compare Database
Option Explicit
Private pObservers As Collection
Private Sub Class_Initialize()
Set pObservers = New Collection
pObservers.Add "Collection object initialized."
End Sub
Public Property Get Observers() As Collection
Set Observers = pObservers
End Property
当我运行我的测试代码时
Option Compare Database
Option Explicit
Public Sub myClassTest()
Dim mc As myClass, thing As Variant
Set mc = New myClass
For Each thing In mc.Observers
Debug.Print thing
Next
End Sub
我在立即窗口中看到以下内容
Collection object initialized.