2014-01-13 39 views
0

反對我已經在類模塊以下VBA代碼(Access 2010中,顯式的選項):VBA分配參照通過構造

public pObservers as Collection 
private Sub Class_Initialize() 
    Set pObservers = new Collection 
End Sub 

當我嘗試構建類的新實例,構造失敗編譯錯誤:「變量未定義」。

是的,我知道最好的做法是,pObservers應該是一個屬性 - 我已經簡化它嘗試隔離問題。那麼如何我從一個構造函數初始化一個對象?

(我真的不知道VBA在所有 - 你大概可以告訴。)提前

感謝。

+0

它有以下是拼寫錯誤。你確定你沒有輸入p-zero-bservers嗎? –

回答

1

我無法重現您的問題。在我訪問2010 VBA類模塊名爲[myClass的]我有

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. 
+0

這很奇怪。感謝您在您的系統上進行測試;想必這意味着別的東西在搞亂它。 – digitig