获取 Table 和用于在 Access VBA 中创建查询的字段名称

Get Table and Field names used to create a query in Access VBA

我正在尝试获取用于在访问数据库中生成查询的 table 和字段的列表。我能够识别在查询输出中找到的字段,但不能识别用于设计查询的字段。

换句话说,是否可以获取 Access 中查询设计视图的查询构建器部分中指定的 table 和字段名称?

我发现并开发了一些 VBA 代码,这些代码获取查询输出中的所有字段(如下),但这并没有获得我需要的信息。有可能实现我想要的吗?

Function listQueryFields() As String

    Dim db As DAO.Database
    Dim qry As DAO.QueryDef
    Dim fld As Field
    Dim rs As Recordset

    Set db = CurrentDb()
    Set rs = db.OpenRecordset("tbl_Query_Field_Names")

    For Each qry In db.QueryDefs
        If InStr(1, qry.Name, "_qry_", vbTextCompare) > 0 Then
            Debug.Print qry.Name
                For Each fld In qry.Fields
                   Debug.Print fld.Name
                   rs.AddNew
                        rs(0) = qry.Name
                        rs(1) = fld.Name
                    rs.Update
                 Next

        End If
    Next

    Set db = Nothing
    Set rs = Nothing
    Exit Function

End Function

获取原始字段名:

fld.SourceField

获取原table名字

fld.SourceTable

提示:您总是可以在 MSDN 的 API 中找到可用的属性,在这种情况下:https://msdn.microsoft.com/en-us/library/office/dn123487.aspx 或者使用 VBA 编辑器中的智能感知。