获取 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 编辑器中的智能感知。
我正在尝试获取用于在访问数据库中生成查询的 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 编辑器中的智能感知。