2014-02-24 44 views
1

我有一個使用主表(tab1),並使用另一個表(tab2)作爲外鍵的Access窗體。兩個表都是Oracle表。簡單的方法來列出配置的Oracle表的內容

tab2表有3個柱。表單使用tab2的2列(id和名稱)作爲gui中的組合列表。

我想在vba宏中列出所有的tab2值(select * from tab2)。有沒有一些神奇的語法來做到這一點?例如:

With [tab2].Recordset 
    While Not .EOF 

     For j = 0 To .Fields.Count - 1 
      debug.print .item(j).name & " : " & .item(j) 
     Next 

     .MoveNext 
     debug.print 

    Wend 
End With 

如果不是,最簡單的方法是什麼? tab2被表單使用(通過外鍵),並且tab2被配置爲訪問左側面板(「表格」部分)中的表格,所以我猜應該有一種簡單的方法來從vba訪問tab2的內容。


編輯:終於找到一個方法來做到這一點:

Dim query As String 
query = "select * from tab2" 

Dim db As ADODB.Connection 
Set db = CurrentProject.Connection  ' <<< the key point 

Dim rs As ADODB.Recordset 
Set rs = New ADODB.Recordset 
rs.Open query, db 

With rs 
    While Not .EOF 

     For j = 0 To .Fields.Count - 1 
      debug.print .Fields(j).name & " : " & .Fields(j) 
     Next 

     .MoveNext 
     debug.print 

    Wend 
End With 

rs.Close 
Set rs = Nothing 

這是一個有點長,並沒有得到神奇。但它的工作。

回答

1

您可以使用j來引用記錄集的.Fields集合的成員字段。每個字段都有.Name.Value屬性。

因此,也許你只需要改變Debug.Print行這個......

Debug.Print .Fields(j).Name & " : " & .Fields(j).Value 
+0

是的,對不起,我忘了是不是 「.item(J)」, 「點域(J)」。無論如何,我的問題更多地集中在「With [tab2] .Recordset」這一行:我正在尋找一種簡單的方法來引用已經在Access中配置的表的內容。最後我找到了一種方法來做到這一點(請參閱我的原始問題中的「編輯:」部分)。這不是一種動搖的語法,但它起作用。 – freesoft

相關問題