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 有一种相对简单的方法来做到这一点,那也可以是一种选择。谢谢。
不幸的是,字段名不能通过一个漂亮的、紧凑的 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)