我在从一个查询导入数据到另一个表时(ACCESS数据库),
由于有相同记录,故在导入时发生主键重复错误.
在ACCESS里设计查询来做时,它会提示是否继续导入,选择"是",则可以导入未重复的数据.
但我现在在VB程序中用cnn.Execute来做,如果使用 On error resume next 来忽略这个错误的话,则会一条记录也无法导入进去,请问高手如何解决这个问题?注: 开始使用 DISTINCT 关键字,但由于数据非常多, 发觉速度非常慢, 所以不希望这样做.(直接忽略错误导入的话,只是几秒钟就可以了,而如果使用DISTINCT, 则需要几分钟的时间)
由于有相同记录,故在导入时发生主键重复错误.
在ACCESS里设计查询来做时,它会提示是否继续导入,选择"是",则可以导入未重复的数据.
但我现在在VB程序中用cnn.Execute来做,如果使用 On error resume next 来忽略这个错误的话,则会一条记录也无法导入进去,请问高手如何解决这个问题?注: 开始使用 DISTINCT 关键字,但由于数据非常多, 发觉速度非常慢, 所以不希望这样做.(直接忽略错误导入的话,只是几秒钟就可以了,而如果使用DISTINCT, 则需要几分钟的时间)
如果更新重复数据的要求比较难实现,也可以不更新,直接忽略到重复的数据也可(这个ACCESS能简单的做到,我想在VB里应该也能实现的吧).不知有没有简单的解决方法,如果真的不行的话,只好在程序中一行一行的插了.我倒不是怕写代码,只是觉得这样效率太低.希望大侠们伸出援手,小生感激不尽!
access,不好作啊
你可以试试的
慢就慢在删除时又整个表找了一遍,我试了四千条重复的插入,用insert into ... select到一个新表,只要几秒钟,而用先删除重复再插入的方法, 时间约用了1分钟!我想最好能够一开始就找出所有重复数据,删除之,再插入就没有错误了,
不过这涉及两个库中表的查询操作,我没有做过,我想是不是用链接表的方法,不知怎么用法 ?
If Err.Number = -2147467259 Then '如主键重复,则执行下一条
Resume Next
End If'一条一条插入,此法不错,本人刚用过。不必把插入的再删除。
'