以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]合并数据,如何判断相同身份证号码的行,则跳过此行。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=30404)

--  作者:lipiti
--  发布时间:2013/3/27 11:36:00
--  [求助]合并数据,如何判断相同身份证号码的行,则跳过此行。
[求助]合并数据,如何判断相同身份证号码的行,则跳过此行。

希望出现一个打开文件对话框,合并用户指定的文件,两个表的结构不同,需要指定合并的列

大侠们,请根据以上需求,帮忙修改一下以下代码,谢谢!

现在代码如下:

Dim dt As DataTable
Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    Dim mg As New Merger
    mg.SourcePath = dlg.FileName
    mg.SourceTableName = "员工入职"
    mg.DataTableName = "员工入职"
    mg.Merge()
End If
For Each dr As DataRow In dt.DataRows
    If DataTables("员工入职").Find("身份证号码 = \'" & dr("身份证号码") & "\'") Is Nothing Then
        Dim nr As DataRow = DataTables("员工入职").AddNew()
        For Each dc As DataCol In dt.DataCols
            nr(dc.name) = dr(dc.name)
        Next
    End If
Next




--  作者:狐狸爸爸
--  发布时间:2013/3/27 12:41:00
--  

编码合并:

 

http://www.foxtable.com/help/topics/2334.htm

 

 

如果订单表中已经存在相同编号的订单,那么就跳过此订单,可以将代码改为:

 

Dim Book As New XLS.Book("c:\\test\\订单.xls")
Dim
Sheet As XLS.Sheet = Book.Sheets(0)
Tables(
"订单").StopRedraw()
\'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致

Dim
nms() As String = {"编号","产品","客户","雇员","单价","折扣","数量","日期"}
\'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题

For
n As Integer = 1 To Sheet.Rows.Count -1
   
Dim bh As String = sheet(n,0).Text
   
If DataTables("订单").Find("编号 = \'" & bh & "\'") Is Nothing Then \'如果不存在同编号的订单
        Dim
r As Row = Tables("订单").AddNew()
        For
m As Integer = 0 To nms.Length - 1
           
r(nms(m)) = Sheet(n,m).Value
       
Next
    End If
Next
Tables(
"订单").ResumeRedraw()