0

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

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

通过使用它,我尝试从MSysObjects. 但我收到一个错误:

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

请帮我解决这个错误。

4

2 回答 2

3

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

在 Access 会话中,打开即时窗口 ( Ctrl+ g),构建 DDLGRANT语句并从CurrentProject.Connection

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

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

于 2013-11-14T07:04:12.183 回答
1

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

打开MS access 1.点击“Office按钮”=>访问选项=>信任中心=>信任中心设置=>宏设置=>启用宏=>确定

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

在里面:粘贴这些行

strDdl = "将 MSysObjects 上的选择授予管理员;" CurrentProject.Connection.Execute strDdl

保存这个...并运行你的宏。最后,您已授予对“MySysObject”的选择权限。

于 2013-11-15T09:49:25.117 回答