我想在我的项目中使用MS Access。我尝试与此代码集成。
rs = st.executeQuery("SELECT name FROM MSysObjects where database <> ''");
通过使用它,我尝试从MSysObjects
获取所有表名。但是我收到了一个错误:
java.sql.SQLException:[Microsoft] [ODBC Microsoft Access驱动程序] 记录无法读取;没有'MSysObjects'的读取权限。
请帮我解决此错误。
答案 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;确定
里面: 粘贴这些行
strDdl =“在MSysObjects TO Admin上选择GRANT;” CurrentProject.Connection.Execute strDdl
保存这个...然后运行你的宏。 Finnaly你已经授予了“MySysObject”的选择权限。