我想在我的项目中使用MS Access。我尝试与此代码集成。
rs = st.executeQuery("SELECT name FROM MSysObjects where database <> ''");
通过使用此方法,我尝试从
MSysObjects
获取所有表名。但是我得到一个错误:java.sql.SQLException:[Microsoft] [ODBC Microsoft Access驱动程序]
记录无法读取;对“ MSysObjects”没有读取权限。
请帮助我解决此错误。
最佳答案
向管理员用户授予SELECT
的读取(MSysObjects
)权限。
在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查询设计器中运行,它将失败。