2012-05-07 89 views
4

我正在使用Access數據庫,它有一個窗體和背後的VBA。自從我涉足VBA以來,我已經有一段時間了,我的谷歌手機現在正在讓我失望,所以我很擔心。屬性的無效使用?

我創建了一個簡單的類,並且我得到一個編譯錯誤:

Dim oRecordSet As ADODB.RecordSet 
Public Property Get RecordSet() As ADODB.RecordSet 
    RecordSet = oRecordSet '' error here 
End Property 

Public Property Let RecordSet(ByVal val As ADODB.RecordSet) 
    RecordSet = val 
End Property 

我有幾個其他相同性質(不同的名稱/變量,很明顯),其編譯就好了;他們的類型是StringInteger

我錯過了什麼?謝謝!

另外一個方面說明,當我編碼intellisense顯示ADODB.Recordset,但在autoformat(回車,編譯等)它將其更改爲ADODB.RecordSet。我需要擔心嗎?

+0

對象使用*設置*設置。所有值類型都可以,只需=。所以,Edmin對錯誤的原因是正確的。 –

回答

7

它應該是:

Public Property Get RecordSet() As ADODB.RecordSet 
    Set RecordSet = oRecordSet '' error here 
End Property 
+1

閱讀材料的解釋:http://stackoverflow.com/questions/349613/what-does-the-keyword-set-actually-do-in-vba –

+0

好酷。那麼爲什麼字符串/整數屬性不需要'Set'和RecordSet呢? – Anders

+0

字符串和整數在VB6中被視爲基元(意味着它們通過值傳遞),因此它們不需要Set關鍵字。 –