我有一个VB6程序,可以在MS Access数据库中添加一列:
alter table x add column y long constraint z unique
该程序无错误地通过多个数据库;但是,在我现在看到的那个上,它给了我“你对表格所要求的更改没有成功,因为它们会在索引,主键或关系中创建重复的值......”
如果它有所不同,我通过形成主键和新列值的记录集向列添加值,然后遍历每个记录以向该列添加值。我完成后我recordSet.updateBatch
。
如果删除约束,它会正常完成;我已将所有1600个值放入电子表格中,按我添加的值排序,并使用公式检查重复项。没有。所有行都获得一个新值,没有任何新值与任何其他新值相同。
还有其他原因可能导致此错误吗?我真的不想删除约束,但我不知道如何通过它。
答案 0 :(得分:0)
由于您确定没有尝试插入违反表索引约束的行,因此您的索引可能已损坏。看看Compact&修复可以解决问题。但首先要备份数据库。
您还可以在新数据库中重新创建表并在那里进行测试。
您可以在Tony Towes'Corrupt Microsoft Access MDBs FAQ找到有关腐败的更多信息。