Foxtable(狐表)用户栏目专家坐堂 → [求助].FIND 使用查找对比是否同行某列为空无法排除相同


  共有4100人关注过本帖树形打印复制链接

主题:[求助].FIND 使用查找对比是否同行某列为空无法排除相同

帅哥哟,离线,有人找我吗?
vvfree
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:448 积分:3436 威望:0 精华:0 注册:2015/3/4 15:55:00
[求助].FIND 使用查找对比是否同行某列为空无法排除相同  发帖心情 Post By:2023/2/20 1:58:00 [只看该作者]

当使用.FIND 使用查找对比两表是否存在相同行,当行某列为空值时无法排除相同行的问题

如果所有列有值就可以对比排除不重复,但是只要有一列值为空就无法排除,重复添加,请问要如何解决?谢谢!

For Each dr1 As Row In Tables("查询打印_Table1").GetCheckedRows
    Dim t1 As DataTable = Tables("查询打印_Table2").DataTable
    
    Dim fdr As DataRow = t1.Find("[销货单号]  = '" & dr1("销货单号") & "'And [销货日期]  = '" & dr1("销货日期") & "'And[客户代号]  = '" & dr1("客户代号") & "'And[SST]  = '" & dr1("SST") & "'")

    If fdr Is Nothing Then 
        
        Dim dr3 As Row = Tables("查询打印_Table2").AddNew()
        For Each dc As Col In Tables("查询打印_Table2").Cols
            dr3(dc.name) = dr1(dc.name)
        Next 
    End If
Next

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110558 积分:562680 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/20 8:38:00 [只看该作者]

如果只有一个列空值,比较好处理

dim filter as string
if dr1.isnull("客户代号")
filter  = "[销货单号]  = '" & dr1("销货单号") & "'And [销货日期]  = '" & dr1("销货日期") & "'And[客户代号]  is null And[SST]  = '" & dr1("SST") & "'"
else
"[销货单号]  = '" & dr1("销货单号") & "'And [销货日期]  = '" & dr1("销货日期") & "'And[客户代号]  = '" & dr1("客户代号") & "'And[SST]  = '" & dr1("SST") & "'"
end if
Dim fdr As DataRow = t1.Find(filter  )

如果有多个列空值,就麻烦了,一个列为空,两个列为空,...,判断都要单独处理

 回到顶部
帅哥哟,离线,有人找我吗?
vvfree
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:448 积分:3436 威望:0 精华:0 注册:2015/3/4 15:55:00
回复:(有点蓝)如果只有一个列空值,比较好处理dim ...  发帖心情 Post By:2023/2/20 11:18:00 [只看该作者]

会有多个为空的情况哦,但不会出现重复,但肯定的是某个值一定不相同,单会出现多个空值,

 回到顶部