ms-access DoCmd.RunSQL语句由于密钥冲突而无法添加记录,但表中没有记录

时间:2016-08-12 14:14:50

标签: sql vba ms-access

我现在已经运行了这个查询大约3个星期,突然间它停止了工作。这是我得到的错误:

enter image description here

我的桌子完全是空的。以下是INSERT INTO语句的代码:

SQL$ = ""
SQL$ = SQL$ & " INSERT INTO table1"
SQL$ = SQL$ & " VALUES ('test', 1, '1-1', #01/01/2001#, 1000, 'testing', 'example', 1, 2, 30);

DoCmd.RunSQL SQL$

由于没有记录存在,因此没有任何内容违反主键值。是否存在违反主键的另一种方式或这是一个访问问题?

这是表格设计:

enter image description here

忽略坏字段名称,我不得不暂时更改它们,以便我可以在这里发布。

我甚至尝试将其作为VBA之外的Access查询运行:

SELECT * FROM table1

并且它什么都没有返回。

更新

这很有趣。因此table1处于1对多关系中,vNum是table1中的许多关系,如前所述。在第一面,调用表“oTable”,它已经有一个我从其他数据库导入的vNum列表。我最近在oT​​able中创建了一个名为“vTester”的vNum的新记录。在我生成上述SQL插入语句的table1的表单中,我可以从组合框中选择我想要的任何vNum。用户不能选择不存在的用户。在我的表格中,我选择了“vTester”并得到了上述错误。但是,当我选择其中一个导入的vNum时,SQL命令有效。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在避免输入新记录很长一段时间后,我修复并压缩了数据库并再次尝试并且它可以正常工作。对我来说,Access有点像这样,只需要一个新的(ish)开始。从那以后哈斯没有再次发生!