如何获取 MS Access 2010 数据库中使用的字段和相应表的列表?

dan*_*z46 3 vba microsoft-access sql

我知道这就是您获取数据库中所有表的列表的方式(如果您修改标准,则更多:

SELECT *
FROM MSysObjects
WHERE (((MSysObjects.Type)=1) AND ((MSysObjects.Flags)=0));
Run Code Online (Sandbox Code Playgroud)

但是有没有类似的方法来获取字段列表以及它们属于哪些表?我认为这对于故障排除和进行快速审计非常有用(即回答“这个字段或正在使用的字段组是什么其他表”)。但不知何故在网上找不到答案。

如果有人通过 VBA 有一种相对简单的方法来做到这一点,那也可以是一种选择。谢谢。

Sea*_*anC 5

不幸的是,字段名不能通过一个漂亮的、紧凑的 SQL 查询获得。此代码将在调试窗口的单独行上打印表名称和每个字段。

Private Sub ShowTableFields()

Dim db As Database
Dim tdf As TableDef
Dim x As Integer

Set db = CurrentDb

For Each tdf In db.TableDefs
   If Left(tdf.Name, 4) <> "MSys" Then ' Don't enumerate the system tables
      For x = 0 To tdf.Fields.Count - 1
      Debug.Print tdf.Name & "','" & tdf.Fields(x).Name
      Next x
   End If
Next tdf
End Sub
Run Code Online (Sandbox Code Playgroud)