列出已配置的Oracle表的内容的简便方法

时间:2014-02-24 09:11:42

标签: vba ms-access access-vba

我有一个使用主表(tab1)的Access表单,并使用另一个表(tab2)作为外键。这两个表都是Oracle表。

tab2表有3个列。表单使用tab2的2列(id和name)作为gui中的组合列表。

我想在vba宏中列出所有tab2值(从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在左侧访问面板中配置为表(“tables”部分),所以我想应该有一种简单的方法可以从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 个答案:

答案 0 :(得分:1)

您可以使用j来引用记录集.Fields集合的成员字段。每个字段都包含.Name.Value属性。

所以也许您只需要将Debug.Print行更改为此...

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