首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法读取记录;对“MSysObjects”没有读取权限

无法读取记录;对“MSysObjects”没有读取权限
EN

Stack Overflow用户
提问于 2009-12-21 01:06:04
回答 4查看 43K关注 0票数 12

我正在尝试使用Excel从Access 2007 ACCDB格式数据库中获取所有表的列表。

我跟踪了这篇文章:

How can I get table names from an MS Access Database?

使用:

代码语言:javascript
运行
复制
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方法获取表名。

我认为问题是如何进入。我没有把握。

有人知道吗?

EN

回答 4

Stack Overflow用户

发布于 2012-09-30 23:39:56

这是对我起作用的原因,因为这是第一个问题,由此引出的问题是:

  1. 这是一个MDB文件。不知道别人的事。,我明白这不是我问的问题。然而,像我一样,许多其他通过谷歌到达这里的人也使用StackOverflow问题/答案,我正在使用MDB。我希望这个答案对某个else.
  2. Open有用。没有它就不知道怎么做了,对不起,虽然很可能。Tools...Options...
  3. Click
  4. 转到“查看”选项卡
  5. ,选择“隐藏对象”,“系统objects"
  6. close选项卡
  7. 转到Tools...Security。”用户和组permissions
  8. Select --所有表名,包括MSysObjects
  9. click --所有“权限”复选框,以便根据需要为所有entries
  10. apply/OK设置为“选中”--
票数 5
EN

Stack Overflow用户

发布于 2009-12-21 23:11:22

使用DAO选项卡集合

代码语言:javascript
运行
复制
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
票数 3
EN

Stack Overflow用户

发布于 2009-12-21 08:37:04

看起来是权限问题。尝试打开数据库并进入安全权限(在Tools-> security ->用户和组权限下),确保您对数据库具有管理员访问权限。

如果没有,您可能必须以用户身份登录到数据库,并授予自己权限。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1937703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档