Foxtable(狐表)用户栏目专家坐堂 → 关于系统命令排除重复值的扩展?


  共有3647人关注过本帖树形打印复制链接

主题:关于系统命令排除重复值的扩展?

帅哥哟,离线,有人找我吗?
大红袍
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/20 14:17:00 [显示全部帖子]

 本来,对于空值的列,就有区分的功能。如果要自己做,参考

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=83243&skin=0

 


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/20 14:29:00 [显示全部帖子]

方法一:直接把空格替换掉

 

For Each dr As DataRow In DataTables("表A").datarows
    dr("第一列") = dr("第一列").replace(" ", "")
Next


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/20 14: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).replace(" ","") <> dr(c).replace(" ", "") 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(",") & ")"


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/20 14:44:00 [显示全部帖子]

 对表格进行排序,循环每一行,如果当前一行数据跟上一行数据不一样,就记录当前行的_Identify,最后得到的就是每种不同数据的第一行。

 

 或者这样这样理解, 对表格进行排序,循环每一行,如果当前一行数据跟上一行数据不一样,如果是第一行,就不记录,接下来的,全部记录,最后就得到全部多余重复的数据。


 回到顶部