我正在尝试使用 Excel VBA 从 Access 2007 ACCDB 格式数据库获取所有表的列表。
我已经关注了这个帖子:
如何从 MS Access 数据库获取表名? https://stackoverflow.com/questions/201282/how-to-get-table-names-from-access
Using:
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
method.
我认为问题出在 Access 上。我不知道。
有人有什么想法吗?
Since your db is ACCDB format, you will be working as user Admin. You can confirm that point in the Immediate window. (Go there with Ctrl+g)
? CurrentUser()
Admin
Since Admin没有读过(SELECT
) 的许可MSysObjects
,执行DDL语句给出Admin该许可。
strDdl = "GRANT SELECT ON MSysObjects TO Admin;"
CurrentProject.Connection.Execute strDdl
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)