我一直在运行此查询大约3周,现在突然停止工作。这是错误我得到:ms-access由于密钥违规,DoCmd.RunSQL语句无法添加记录,但表中没有记录
我的表完全是空的。下面是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$
没有什么应该违反主键值,因为没有记录存在。是否有另一种方法来违反主键或这是一个访问问题?
这是表设计:
忽略坏的字段名,我不得不改变他们暂时这样我就可以张贴在这里。
我甚至尝试运行此作为VBA以外的Access查询:
SELECT * FROM table1
,并返回任何内容。
UPDATE:
这很有趣。所以table1是一对多的关系,vNum是前面陈述的table1中的许多关系。一方面,调用表“oTable”,它已经有一个从不同数据库导入的vNum列表。我最近在oTable中创建了一个名为“vTester”的vNum的新记录。在我生成上述SQL插入语句的table1的表单中,我可以从组合框中选择任何我想要的vNum。用户不能选择一个不存在的。在我的表单中,我选择了“vTester”,并得到了上述错误。但是,当我选择导入的vNum之一时,SQL命令起作用。有任何想法吗?
请发布table1设计视图的屏幕截图。如果它具有自动增量标识字段(键),则可能会隐式尝试将'col1'字符串写入它。为避免这种情况,请在SQL中指定列名:INSERT INTO table_name(column1,column2,column3,...) VALUES(value1,value2,value3,...);' – Stack
几乎不可能回答这个问题不知道表格设计和你试图插入的值。 –
我更新了我的问题。 @StackExchanger我试过,但仍然有相同的问题 – Michael