我有这样一段代码:
dim dqpz As New Filler
dqpz.SourceTable = DataTables("会计凭证查询") '指定数据来源
dqpz.SourceCols = "sszt,pzrqn,pzrqy,pzrqr,pzlx,pzdm,flxh,pzzy,kmdm,jdfx,flje,cjyh,fdzs" '指定数据来源列
dqpz.DataTable = DataTables("会计凭证") '指定数据接收表
dqpz.DataCols = "账套编号,年,月,日,pzlx,凭证编号,flxh,凭证摘要,科目代码,jdfx,flje,制证人,附件张数" '指定数据接收列
dqpz.ExcludeExistValue = true
dqpz.ExcludeNullValue = true
dqpz.Distinct = true
dqpz.Append = False
dqpz.Fill() '填充数据
意思是要将"会计凭证查询"表中的内容填充到"会计凭证"表中.
需要填充的字段是对应好了的.
现在的问题是,这几个条件设置好像没有效果:
dqpz.ExcludeExistValue = true
dqpz.ExcludeNullValue = true
dqpz.Distinct = true
dqpz.Append = False
参数设置的意思是:
排除来源表中重复的行,
也排除目标表中重复的表,
排除空值,
目标表中先在原有行中填充,不够用再新增行.
可是执行的结果是: 不任什么情况下,都直接追加行,不用任何条件判断,追加一次就增加100行,第二次就再加100行,实际上内容完全一样的.
[此贴子已经被作者于2009-1-4 12:34:13编辑过]
我不明白,怎样才算是完全一样的行?
如果将ID列也考虑进去,那必定是不一样的行了,ID自动生成,没有重复的,所以每一次都判断为不同的行.
如果只判断我要追加的列的内容,那就合理一些了.
急,我在线等!
[此贴子已经被作者于2009-1-4 12:39:13编辑过]
我的查询表是用SQL查询来的,
我在考虑是否与这个查询结果不各列的数据类型有关,虽然值是一样的,类型不同也可能造成不同的判断?
我测试到正常,你每次排除一列,看看到底那列造成的。
老大,我每一个字段都试了一下
"账套编号,年,月,日,pzlx,凭证编号,flxh,凭证摘要,科目代码,jdfx,flje,制证人,附件张数"
这中间的每一个字段都不被认为是目标表中已经有的内容,无限制地追加进来.
我记得以前的版本没有这个问题的,以前我是测试过的.
注意,我的来源表是SQL查询表,目标表是外部数据源ACCESS.
我又试了一下,将true 改为 false ,效果一样
经测试,从内部表到内部表,没有问题的.
[此贴子已经被作者于2009-1-4 14:50:03编辑过]
经测试,主要是 .ExcludeExistValue = true
这个没有起作用,不任如何设置,都无效