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

Ms access 列出已配置Oracle表内容的简便方法,ms-access,vba,Ms Access,Vba,我有一个访问表单,它使用一个主表tab1,并使用另一个表tab2作为外键。这两个表都是Oracle表 tab2表有3列。表单使用2列id和tab2的名称作为gui中的组合列表 我想在vba宏中列出所有tab2值,并从tab2中选择*。有什么神奇的语法可以做到这一点吗?比如: With [tab2].Recordset While Not .EOF For j = 0 To .Fields.Count - 1 debug.print .item(j

我有一个访问表单,它使用一个主表tab1,并使用另一个表tab2作为外键。这两个表都是Oracle表

tab2表有3列。表单使用2列id和tab2的名称作为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在access 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
它有点长,没有魔法。但是它可以工作。

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

因此,您可能只需要将Debug.Print行更改为

Debug.Print.Fieldsj.Name&:&.Fieldsj.Value
是的,对不起,我忘了是.Fieldsj而不是.itemj。无论如何,我的问题更多地集中在[tab2]这一行。记录集:我正在寻找一种简单的方法来引用Access中已配置的表的内容。最后我找到了一种方法,请参见我原始问题中的编辑:部分。这不是神奇的语法,但它可以工作。