以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  自动复制行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=118611)

--  作者:yetle
--  发布时间:2018/5/7 13:32:00
--  自动复制行
有以下代码自动复制行,我想两个数据表进行对比后,只复制不重复的行,怎么写?

Dim Result As DialogResult

Result = MessageBox.Show("联系系统管理员对接资料,确定要对接客户资料吗?","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes  Then
\' And  User.IsRole("管理员")   
  
Tables("物料追踪").stopredraw

Dim nma() As String = {"pono","ftyname","dappenddate","back_ansi","code","name","stru","weight","okcolorno","color","unit","gyno","ftyno","num","baknum","price","pricebyinno","dqtymoney","monbyinno","othermon"} \'A表数据来源列
Dim nmb() As String = {"采购合同编号","供方","订货日期","交货日期","物料编码","物料名称","成份","克重","供应商色号","颜色","单位","物供号","款号","需求数量","下单数量","单价","含税单价","不含税金额","附加费"} \'B表数据接收列

For Each dr As Row In Tables("dbwlzz").Rows
\'    If DataTables("物料资料").DataRow("产品编号") Is Nothing   Then
      Dim r As Row = Tables("物料追踪").addnew()
      For n As Integer = 0 To nmb.length -1
           r(nmb(n)) = dr(nma(n))
      Next
\' End If
Next
Tables("物料追踪").ResumeRedraw()

   
End If

--  作者:有点蓝
--  发布时间:2018/5/7 13:36:00
--  
For Each dr As Row In Tables("dbwlzz").Rows
    If DataTables("物料资料").Find("产品编号=\'" & dr("dbwlzz表编号列") & "\'") Is Nothing   Then
        Dim r As Row = Tables("物料追踪").addnew()
        For n As Integer = 0 To nmb.length -1
            r(nmb(n)) = dr(nma(n))
        Next
    End If
Next

--  作者:yetle
--  发布时间:2018/5/7 13:44:00
--  
产品编号和采购合同编号都不是唯一的,会存在多行同一个产品编号的情况,也会存在多行是同一个采购合同编号的情况

好了,我增加一个对应ID.谢谢
[此贴子已经被作者于2018/5/7 13:47:43编辑过]