2010-08-07 51 views
1

我一直在导入相同类型的Excel文件到MS Access 2007中,直到最近才有问题。该消息表示,当我覆盖表格时,我有一个违规行为。我删除了excel文件(主键字段)中的重复项,并仔细检查了excel文件。我已经重新进入,它仍然显示相同的信息。MS Access 2007重复值(键违规错误),并消除重复值

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

重复值(键违例错误)要导入的记录可能包含无法存储在目标表的主键字段或索引属性设置为Yes(无重复)的字段中的重复值。消除源文件中的重复值并再次尝试导入。

+0

什么是您在Access目标表中唯一的索引? Excel电子表格中源字段中的值是什么?访问告诉你这些之间有重叠,并且必须有或者它会成功而没有错误。 – 2010-08-07 22:33:57

回答

2

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

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

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

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

如果它确实是原来不被侵犯,但一个错误,所有的字段大小和键/指数发布坏值和表定义/验证组成回到这里。

0

请仔细检查您的Access数据库表。经常访问决定以您的名义为字段编制索引。这些通常不是UNIQUE索引(在Access中表示为列上No的“重复OK”属性),但也许您有一些您不知道的额外索引。

此外,检查表中是否有自动编号字段,并确保自动编号没有被搞乱(删除并重新添加空表中的自动编号声明)。

+0

删除自动编号不是有关相关表的好主意。事实上,如果RI得到执行,你将无法做到这一点。 – 2010-08-11 00:40:08

+0

根据“覆盖”一词的用法,我可能不明智地认为这是一张仅用于处理此导入的空表。 – 2010-08-11 02:13:00

1

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