如何让 Microsoft Access 生成数据库表列表?
我遇到了一个 SQL 查询,有人建议另一个网站但是 Access 似乎没有任何界面可以简单地允许运行用户构建的查询,例如下面的查询......
SELECT [Name]
FROM MSysObjects
WHERE Type In (1,4,6)
AND Left([Name] , 4) <> "MSys"
ORDER BY [Name]
答案1
您可以运行查询中的 SQL,因为它就是这样。
- 在查询设计中创建新查询,而不是使用向导。
- 关闭表格窗口。
- 将视图更改为
SQL
并输入字符串。 - 点击
RUN
。
答案2
DAO
您可以在以下情况下这样做VB
:
Public Sub ListTablesDAO()
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Set db = CurrentDb
For Each tdf In db.TableDefs
If (tdf.Attributes And dbSystemObject) = 0 Then
Debug.Print tdf.Name
End If
Next tdf
db.Close: Set db = Nothing
End Sub
并且像这样ADO
Public Sub ListTablesADO()
Dim rs As ADODB.Recordset
Set rs = CurrentProject.Connection.OpenSchema(adSchemaTables)
Do Until rs.EOF
If rs!TABLE_TYPE = "TABLE" Then
Debug.Print rs!TABLE_NAME
End If
rs.MoveNext
Loop
rs.Close: Set rs = Nothing
End Sub
DAO 和 ADO 为数据库提供了两种不同的对象模型。选择哪个版本取决于您的偏好。您还需要对相应库的引用:
您可以在菜单中添加这些参考Tools > References
: