3

我已经能够使用 UCanAccess 2.0.6 驱动程序从 Java 成功创建 MS Access 数据库表。但是,我随后无法从 MS Access(Microsoft Office 2007,Windows 7 64 位)打开表,MS Access 抛出错误:

保留错误(-5001);没有针对此错误的消息。

在 MS Access 中使用完全相同的 CREATE TABLE 语句不会产生任何问题。奇怪的是,表已成功创建,并且可以通过查询成功添加和检索数据。所以这些表在底层数据库中,但 Access 无法打开它们。

如果有帮助,我正在使用的创建语句之一如下:

CREATE TABLE tblMain (
        ID COUNTER NOT NULL PRIMARY KEY, 
        Project INTEGER NOT NULL, 
        ItemNumber INTEGER NOT NULL, 
        DateCreated DATETIME NOT NULL, 
        ItemName TEXT NOT NULL, 
        ItemDescription MEMO NOT NULL, 
        OriginatorPerson TEXT NOT NULL, 
        DueDate DATETIME NOT NULL, 
        Closed YESNO NOT NULL, 
        ClosingComments MEMO NOT NULL, 
        Priority YESNO NOT NULL, 
        AssignedToCompany TEXT NOT NULL, 
        AssignedToPerson TEXT NOT NULL);
4

2 回答 2

1

无论是使用 Access 2007 还是使用 Access 2010,我都无法重现此问题。Access 2003 也可以正常工作。但某些访问版本可能会发生这种情况......它看起来与另一个用户在 UCanAccess 中报告的问题非常相似论坛并且我已修复(但在这种情况下,我无法重现此问题):http: //sourceforge.net/p/ucanaccess/discussion/help/thread/5a57b955/

我很确定这与 UCanaccess(使用底层的 jackcess)保持列属性(例如,默认值、“必需”等)的方式有关。您能否尝试重新执行您的 DDL,避免在不需要的地方设置“非空”,例如在列 ID(计数器和 PK)上?请让我知道您的发现,我没有其他方法可以明确修复此错误。

于 2014-05-24T14:48:47.853 回答
0

可能您需要授予管理员权限:

GRANT SELECT, DELETE, INSERT, UPDATE
ON tblMain
TO Admin;

使用 UCanAccess 2.0.6 驱动程序运行该查询。

于 2014-05-23T19:58:58.840 回答