我正在尝试使用Excel从Access 2007 ACCDB格式数据库中获取所有表的列表。
我跟踪了这篇文章:
How can I get table names from an MS Access Database?
使用:
SELECT MSysObjects.Name AS table_name
FROM MSysObjects
WHERE
(((Left([Name],1))<>"~")
AND ((Left([Name],4))<>"MSys")
AND ((MSysObjects.Type) In (1,4,6)))
order by MSysObjects.Name
但我得到了这个错误。
无法读取
记录;对“MSysObjects”没有读取权限
我希望能够只使用SQL语句而不是OpenSchema
方法获取表名。
我认为问题是如何进入。我没有把握。
有人知道吗?
发布于 2012-09-30 23:39:56
这是对我起作用的原因,因为这是第一个问题,由此引出的问题是:
发布于 2009-12-21 23:11:22
使用DAO选项卡集合
Sub TableDefs()
Dim db As dao.Database
Dim tdfLoop As dao.TableDef
Set db = CurrentDb
With db
Debug.Print .TableDefs.Count & " TableDefs in " & .name
For Each tdfLoop In .TableDefs
Debug.Print " " & tdfLoop.name
Next tdfLoop
End With
End Sub
发布于 2009-12-21 08:37:04
看起来是权限问题。尝试打开数据库并进入安全权限(在Tools-> security ->用户和组权限下),确保您对数据库具有管理员访问权限。
如果没有,您可能必须以用户身份登录到数据库,并授予自己权限。
https://stackoverflow.com/questions/1937703
复制相似问题