MS Access 2007重复值(键违规错误)并消除了重复值

时间:2010-08-07 02:26:17

标签: ms-access ms-access-2007

我一直在将相同类型的excel文件导入MS Access 2007,直到最近才出现问题。消息说我在覆盖表时发生了密钥违规。我删除了excel文件(主键字段)中的重复项,并仔细检查了excel文件。我重新导入了它仍然显示相同的信息。

我可以采取什么行动来解决?

重复值(密钥违规错误)您要导入的记录可能包含无法存储在目标表的主键字段中的重复值,也不能存储在Indexed属性设置为Yes(No Duplicates)的字段中。消除源文件中的重复值,然后再次尝试导入。

4 个答案:

答案 0 :(得分:2)

你所能做的就是解决这个问题。我倾向于怀疑它是一个错误,但即使它是,你仍然必须找到精确的触发器。

  1. 在Excel文件中,将键列拉在一起,然后为它/它们对Excel表进行排序。使用整个范围内的公式添加条件格式(如果它在A2中开始,条件格式将读取= A2 = A1,没有美元符号),并带有一些粗体,填充等,以便任何显示清楚。

  2. 复制Access表。删除所有密钥,索引,验证规则等,一次删除一次,每次删除后导入到副本,直到导入有效。

  3. 小批量复制行(不知道你要说多少行,但一次说50-100个)到一个新工作表,并从新工作表链接并导入(到原始表)直到你可以缩小错误来自哪一行。 (如果一个小批次失败,请继续缩小。)

  4. 如果它确实不是违规而是错误,请将错误值和表定义与所有字段大小和键/索引/验证合成一起发布回来。

答案 1 :(得分:1)

转到要在其中添加重复数据的特定表的设计视图,并选择添加为重复的行并将索引更改为YES(DUPLICATE),而不是在此MS-Access数据库表中添加重复数据。 ....................

答案 2 :(得分:0)

仔细检查Access数据库表。 Access经常决定代表您索引字段。这些通常不是UNIQUE索引(在Access中表示为列上的No的“Duplicates OK”属性)但是您可能还有一些您不知道的额外索引。

同时检查表中是否有自动编号字段,并确保自动编号没有搞砸(删除并在空表中重新添加autonum声明)。

答案 3 :(得分:0)

将Excel工作表导入Access时,我遇到了同样的问题。我的错误是由Excel工作表末尾的空行引起的。如果是这种情况,处理它的最简单方法是将Excel工作表中的信息复制到另一张没有空白行的工作表中,由于某种原因,我试图删除空白行的宏没有效果。

此外,空白列也会产生类似的效果,但错误表明行中的某些内容无法找到第11列。