以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求助:如何用简单代码判断表的某两行完全相同?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=104918)

--  作者:lmlptj
--  发布时间:2017/8/8 15:20:00
--  求助:如何用简单代码判断表的某两行完全相同?
如题所问!谢谢指导!
--  作者:有点甜
--  发布时间:2017/8/8 15:24:00
--  

Dim dr1 As DataRow
Dim dr2 As DataRow
Dim same As Boolean = True
For Each dc As DataCol In dr1.DataTable.DataCols
    If dr1(dc.name) <> dr2(dc.name)
        same = False
        Exit for
    End If

Next
msgbox(same)

 

[此贴子已经被作者于2017/8/8 15:25:20编辑过]

--  作者:lmlptj
--  发布时间:2017/8/8 15:31:00
--  
以上代码复制到命令窗口有错误!我主要的想法是:从表A大批量的数据中,找出完全重复的行,要把这些行删除,且要保留一行。麻烦老师再指点一下呢?
--  作者:有点甜
--  发布时间:2017/8/8 15:33:00
--  

写代码

 

Dim idx As String = "-1,"
Dim idx_temp As String = ""
Dim pdr As DataRow = Nothing
Dim count As Integer = 0
Dim cs As String = "第一列,第二列"
For Each dr As DataRow In DataTables("表A").Select("", cs)
    Dim flag As Boolean = False
    If pdr IsNot Nothing Then
        For Each c As String In cs.split(",")
            If pdr(c) <> dr(c) Then
                flag = True
                Exit For
            End If
        Next
        If flag Then
            If count > 1 Then
                idx &= idx_temp
            End If
            count = 1
            idx_temp = ""
        Else
            count += 1
            idx_temp &= dr("_Identify") & ","
        End If
    Else
        count += 1
    End If
    pdr = dr
Next

If count > 1 Then
    idx &= idx_temp
End If

 

Tables("表A").Filter = "_Identify not In (" & idx.trim(",") & ")"

\'DataTables("表A").DeleteFor("_Identify In (" & idx.trim(",") & ")")


--  作者:lmlptj
--  发布时间:2017/8/8 17:35:00
--  
灰常感谢!!!