以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何比对七个datatable中相同的身份证号的记录?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=31557)

--  作者:jxkqf
--  发布时间:2013/4/17 10:47:00
--  如何比对七个datatable中相同的身份证号的记录?

现有七个datatable,每个datatable都有一个身份证号的字段,请问高手:

如何比对七个datatable中表间重复的身份证号的记录?


--  作者:Bin
--  发布时间:2013/4/17 10:51:00
--  
把7个表的身份证加起来. 放在一个临时表.然后点击高级筛选功能,显示重复值.
--  作者:jxkqf
--  发布时间:2013/4/17 11:28:00
--  
用代码可以实现吗?我不希望放在一个表中。因为这七个表中的字段名称都不一样,除了身份证号。
--  作者:Bin
--  发布时间:2013/4/17 11:35:00
--  
Dim dtb As New DataTableBuilder("身份证号码")
dtb.AddDef("身份证号", Gettype(String), 32)
dtb.Build()

For Each dr As DataRow In DataTables("表A").DataRows
 DataTables("身份证号码").AddNew()("身份证号")=dr("第一列")
Next
For Each dr As DataRow In DataTables("第二个表").DataRows
 DataTables("身份证号码").AddNew()("身份证号")=dr("第一列")
Next
MainTable= Tables("身份证号码")

Syscmd.Filter.ShowSameValues()  \'显示重复值
Syscmd.Filter.ShowRedundantValues() \'显示冗余值

想获得哪一个 随便选一个系统命令执行

[此贴子已经被作者于2013-4-17 11:41:06编辑过]

--  作者:jxkqf
--  发布时间:2013/4/17 16:01:00
--  
还是觉得不够理想。
--  作者:jxkqf
--  发布时间:2013/4/21 11:54:00
--  

在没有别的更好的办法了吗?


--  作者:lsy
--  发布时间:2013/4/21 14:00:00
--  

Dim s As New List (Of String)
For Each dt As DataTable In DataTables
    If dt.DataCols.Contains("身份证号码") Then
        For Each dr As DataRow In dt.DataRows
            s.Add(dr("身份证号码"))
        Next
    End If
Next

Dim str As String
Dim i,j As Integer
For i = 0 To s.Count - 1
    For j = 0 To i - 1
        If s(i) = s(j) Then
            Exit For
        End If
    Next
    If i <> j Then
        str = str & s(i) & "|"
    End If
Next
str = str.TrimEnd("|")
MessageBox.Show(str)