Foxtable(狐表)用户栏目专家坐堂 → 任意列数重复值判断通用代码


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

主题:任意列数重复值判断通用代码

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


加好友 发短信
等级:九尾狐 帖子:2180 积分:13804 威望:0 精华:2 注册:2012/2/25 10:59:00
任意列数重复值判断通用代码  发帖心情 Post By:2013/10/22 1:15:00 [只看该作者]

经过几天的学习揣摩lsy兄的源代码,我做了一个任意列数重复值判断的通用代码给有需要的同学,假设我们用:上级部门 单位名称 姓名 3列来做判断

Dim str0 As New List (Of String)
        Dim str1 As New List (Of String)
        Dim id0,id1,flt,celltext As String
        For Each r As Row In CurrentTable.Rows
            celltext=r("上级部门")&r("单位名称")&r("姓名")
            If str0.Contains(celltext) =False Then
                id0 + = r("_Identify") & ","
            Else
                str1.Add(celltext)
               
            End If
            str0.Add(celltext)
        Next
       
        For Each r As Row In CurrentTable.Rows
            celltext=r("上级部门")&r("单位名称")&r("姓名")
            If str1.Contains(celltext) Then
                id1 + = r("_Identify") & ","
               
            End If
        Next
       
        If id1 > "" Then
            id1 = id1.Trim(",")
        End If
       
        If id1 > "" Then
            flt = "_Identify In (" & id1 & ")"
        End If
       
        CurrentTable.Filter = flt
        CurrentTable.Sort="上级部门,单位名称,姓名"


大家只要修改红色的部分,就能用来判断任意多列的重复值


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


加好友 发短信
等级:小狐 帖子:393 积分:2498 威望:0 精华:0 注册:2013/4/17 6:41:00
  发帖心情 Post By:2013/10/22 6:19:00 [只看该作者]

不错,顶一下!


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/10/22 7:33:00 [只看该作者]

既善于钻研,又乐于分享。

顶!


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


加好友 发短信
等级:童狐 帖子:252 积分:3569 威望:0 精华:0 注册:2012/8/11 15:00:00
  发帖心情 Post By:2013/10/22 15:34:00 [只看该作者]

留个标记


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/10/22 20:21:00 [只看该作者]

 mark,建议写入帮助,筛选/删除重复确实有些麻烦。

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2015/7/2 1:13:00 [只看该作者]

這樣或通用些:

Dim Lms As String  = "上级部门,单位名称,姓名"
Dim Lmst() As String  = Lms.Split(",")

Dim str0 As New List (Of String)
Dim str1 As New List (Of String)
Dim id0,id1,flt,celltext As String

'+++++++++++++++++++++++++++++++++
For Each r As Row In CurrentTable.Rows
    celltext=Nothing
    For i As Integer = 0 To Lmst.Length-1
        celltext+=r(Lmst(i))
    Next
    
    If str0.Contains(celltext) =False Then
        id0 + = r("_Identify") & ","
    Else
        str1.Add(celltext)
    End If
    str0.Add(celltext)
Next

'++++++++++++++++++++++++++++++++
For Each r As Row In CurrentTable.Rows
    celltext=Nothing
    For i As Integer = 0 To Lmst.Length-1
        celltext+=r(Lmst(i))
    Next
    
    If str1.Contains(celltext) Then
        id1 + = r("_Identify") & ","
    End If
Next

'+++++++++++++++++++++++++++++++++
If id1 > "" Then
    id1 = id1.Trim(",")
    flt = "_Identify In (" & id1 & ")"
End If

CurrentTable.Filter = flt
CurrentTable.Sort= Lms
[此贴子已经被作者于2015/7/2 1:13:42编辑过]

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


加好友 发短信
等级:童狐 帖子:201 积分:1386 威望:0 精华:0 注册:2015/4/14 17:39:00
  发帖心情 Post By:2015/7/2 5:57:00 [只看该作者]

好神啊! 建议收入帮助。 造福千万百姓啊

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


加好友 发短信
等级:小狐 帖子:390 积分:3168 威望:0 精华:0 注册:2008/8/31 20:44:00
  发帖心情 Post By:2015/11/1 14:58:00 [只看该作者]

如果是任一个列的值重复怎样改代码?不是同时几个列的值重复。

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


加好友 发短信
等级:小狐 帖子:390 积分:3168 威望:0 精华:0 注册:2008/8/31 20:44:00
  发帖心情 Post By:2015/11/1 21:01:00 [只看该作者]

请帮忙

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/11/2 9:26:00 [只看该作者]

仔细看帖,

 

“大家只要修改红色的部分,就能用来判断任意多列的重复值”


 回到顶部
总数 13 1 2 下一页