没有’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
- 从您的访问文件中按ctrl + g,按下运行符号创建一个宏。 以任何名称创建一个宏。
在里面:粘贴这些线
strDdl =“在MSysObjects TO Admin上选择GRANT;” CurrentProject.Connection.Execute strDdl
保存这个…然后运行你的宏。 Finnaly你已经授予了“MySysObject”的选择权限。