Ms access MS Access“重复值”错误,但我不知道原因

Ms access MS Access“重复值”错误,但我不知道原因,ms-access,vb6,Ms Access,Vb6,我有一个VB6程序,可以在MS Access数据库中添加一列,因此: alter table x add column y long constraint z unique 程序无误地通过了许多数据库;但是,在我现在看到的一个表中,它告诉我您请求对表进行的更改没有成功,因为它们会在索引、主键或关系中创建重复的值 如果有区别,我会通过形成一个包含主键和新列值的记录集向列中添加值,然后遍历每个记录向该列中添加值。完成后我会进行recordSet.updateBatch 如果我移除约束,它将正常完成

我有一个VB6程序,可以在MS Access数据库中添加一列,因此:

alter table x add column y long constraint z unique
程序无误地通过了许多数据库;但是,在我现在看到的一个表中,它告诉我您请求对表进行的更改没有成功,因为它们会在索引、主键或关系中创建重复的值

如果有区别,我会通过形成一个包含主键和新列值的记录集向列中添加值,然后遍历每个记录向该列中添加值。完成后我会进行recordSet.updateBatch

如果我移除约束,它将正常完成;我已经将所有1600个值放入电子表格,按我添加的值排序,并使用公式检查重复项。没有。所有行都会获得一个新值,但没有一个新值与任何其他新值相同


是否有其他原因导致我出现此错误?我真的不想删除该约束,但我不知道如何克服它。

因为您确定没有尝试插入违反表索引约束的行,所以可能索引已损坏。查看Compact&Repair是否能解决问题。但首先要备份数据库

您还可以在新数据库中重新创建表并在那里进行测试


您可以在Tony Towers上找到有关损坏的更多信息。

也许您可以向我们展示表定义以及用于更新它的语句?添加字段的语句是alter table QUOTION add column long\u citeIndex long constraint k\u index unique。我认为您不需要整个表的定义,它有许多字段,我认为它不相关。更新代码有:从z中选择x,y,然后在遍历所有1600条记录的循环中选择rs.fieldsy.value=[计算值],然后选择rs.UpdateBatch。如果我从列添加中移除约束,这些都可以工作。请澄清哪一步触发了错误。起初我以为你是说它发生在另一张桌子上。但是,再次读取时,听起来错误会在插入时发生。哪一个是对的?我道歉;我的困惑显然把我弄糊涂了。当我做recordset.UpdateBatch时就会发生这种情况。我准备完全放弃这个问题;我确信这个错误是由这个特定数据库实例的某些属性引起的,并且我不会在其他数据库上出现这个问题,就像我在现有数据库上已经没有这个问题一样。我感谢大家的帮助。