以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  复制时禁止复制重复行需要怎么加条件?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=51208)

--  作者:jiterp
--  发布时间:2014/5/21 21:48:00
--  复制时禁止复制重复行需要怎么加条件?

以下是复制语句,我想在这里面加入一个控制条件: 如果表B中已有ID值,则表A选中的ID值复制过去,也就是说只要有重复的记录行,就不要复制过去,只复制没有重复的记录行.

 

For Each r1 As Row In Tables("表A").GetCheckedRows
    Dim  r2 As Row = Tables("表B").AddNew
    R2("ID") = R1("ID")
    R2("CODE") = R1("CODE")

NEXT


--  作者:有点甜
--  发布时间:2014/5/21 21:51:00
--  
For Each r1 As Row In Tables("表A").GetCheckedRows
    Dim fdr As DataRow = DataTables("表B").Find("ID = \'" & r1("ID") & "\'")
    If fdr Is Nothing Then
        fdr = DataTables("表B").AddNew
        fdr("ID") = R1("ID")
    End If
    fdr("CODE") = R1("CODE")
Next

--  作者:jiterp
--  发布时间:2014/5/21 22:21:00
--  

谢谢!


--  作者:jiterp
--  发布时间:2014/5/29 8:56:00
--  
以下是引用有点甜在2014-5-21 21:51:00的发言:
For Each r1 As Row In Tables("表A").GetCheckedRows
    Dim fdr As DataRow = DataTables("表B").Find("ID = \'" & r1("ID") & "\'")
    If fdr Is Nothing Then
        fdr = DataTables("表B").AddNew
        fdr("ID") = R1("ID")
    End If
    fdr("CODE") = R1("CODE")
Next

 

 今天测试了一下,发现有一个问题,当B表全为空时,A表的记录是不过去,这是什么原因呀?


--  作者:Bin
--  发布时间:2014/5/29 8:59:00
--  
不可能的,你确定是空表吗? 还是只是筛选掉了数据.