没有’MSysObjects’的读取权限

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

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

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

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

请帮我解决这个错误。

授予管理员用户对MSysObjects读取( SELECT )权限。

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

 strDdl = "GRANT SELECT ON MSysObjects TO Admin;" CurrentProject.Connection.Execute strDdl 

请注意,必须从ADO执行语句。 它应该按照写入的方式工作,因为CurrentProject.Connection是一个ADO对象。 但是,如果尝试使用DAO Execute方法(如CurrentDb.Execute或从Access查询设计器运行时,它将失败。

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

打开MS访问1.单击“Office Button”=> access option => trust center => trust center settings => Macro settings => Enable macros => Ok

  1. 从您的访问文件中按ctrl + g,按下运行符号创建一个宏。 以任何名称创建一个宏。

在里面:粘贴这些线

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

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