没有“MSysObjects”的读取权限

时间:2013-11-14 06:30:27

标签: java java-ee ms-access ms-access-2007

我想在我的项目中使用MS Access。我尝试与此代码集成。

rs = st.executeQuery("SELECT name FROM MSysObjects where database <> ''");

通过使用它,我尝试从MSysObjects获取所有表名。但是我收到了一个错误:

  

java.sql.SQLException:[Microsoft] [ODBC Microsoft Access驱动程序]   记录无法读取;没有'MSysObjects'的读取权限。

请帮我解决此错误。

2 个答案:

答案 0 :(得分:3)

在<{1}}上授予管理员用户读取(SELECT)权限。

在Access会话中,打开立即窗口( Ctrl + g ),构造一个DDL MSysObjects语句并从GRANT执行它

CurrentProject.Connection

请注意,必须从ADO执行语句。它应该按照写入的方式工作,因为strDdl = "GRANT SELECT ON MSysObjects TO Admin;" CurrentProject.Connection.Execute strDdl 是一个ADO对象。但是,如果尝试使用DAO CurrentProject.Connection方法(例如Execute)或从Access查询设计器运行,则会失败。

答案 1 :(得分:0)

要使用具有读取权限的MS Access进行连接,请执行以下步骤:

打开MS访问权限 1.单击 “Office按钮”=&gt; access option =&gt;信任中心=&gt;信任中心设置=&gt;宏设置=&gt;启用宏=&gt;确定

  1. 从您的访问文件中按ctrl + g 通过按运行符号创建一个宏。以任何名称创建一个宏。
  2. 里面: 粘贴这些行

    strDdl =“在MSysObjects TO Admin上选择GRANT;” CurrentProject.Connection.Execute strDdl

    保存这个...然后运行你的宏。 Finnaly你已经授予了“MySysObject”的选择权限。

相关问题