UCanAccess 打开数据库时出现"User lacks privilege or object not found"错误



我有一个Java程序需要从Microsoft Access数据库中提取。我最近不得不更改代码以使用UCanAccess而不是ODBC,因为Java SE 8不支持JDBC-ODBC Bridge(在没有ODBC的情况下从Java操作Access数据库)

当我运行下面显示的代码(只是UCanAccess网站上给出的示例代码)时,我收到一个错误 -

ERROR: net.ucanaccess.jdbc.UcanaccessSQLException: user lacks privilege or object not found: NULL

代码如下

Connection conn=DriverManager.getConnection("jdbc:ucanaccess://Z:\Assignment.accdb");
Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT * FROM tbl2014janjun"); //tbl2014janjun ORDER BY ID
while (rs.next()) {
    System.out.println(rs.getString(1));
}

在测试时,我注意到此代码可以访问一个单独的数据库 Work Order,并且输出符合预期。此外,每当此代码尝试运行时,它都会在服务器目录中生成锁定 laccdb 文件。因此,我认为问题出在用户权限上。在搜索此站点以查找可能的答案时,其中大多数与错误消息的后半部分有关 - 表格拼写错误等。我已确保拼写/位置/文件结构正确。

感谢您提供的任何帮助。

Tomcat 6移动到7后,我遇到了完全相同的问题。两个数据库位于同一位置,具有相同的表和列,只是数据不同(不同的项目)。一个工作正常,另一个给出了上述错误。

通过在 Access Windows 应用程序中执行"压缩和修复数据库"操作来修复此问题。 (在 Access 2007 中,它从主工具栏下拉列表中Manage > Repair

相关内容

最新更新