以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何删除重复行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87415)

--  作者:xujie80
--  发布时间:2016/7/11 11:15:00
--  如何删除重复行
在导入数据后,发现有很多数据行是重复的,现要根据其中的某个字段来判断,如果这个字段是重复,就删除其他行,只保留一行。如何写代码?例如表A,以第一列为判断,该如何写代码?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table


--  作者:大红袍
--  发布时间:2016/7/11 11: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
    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(",") & ")")


--  作者:xujie80
--  发布时间:2016/7/11 11:44:00
--  
有点看花眼,好好学习,谢谢大红袍,不知你是怎样炼成的