Foxtable(狐表)用户栏目专家坐堂 → 在表中查找编号重复的行,什么样的代码效率高?


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

主题:在表中查找编号重复的行,什么样的代码效率高?

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
在表中查找编号重复的行,什么样的代码效率高?  发帖心情 Post By:2011/9/6 12:05:00 [只看该作者]

    我想要在一个表中查找编号重复的行,即只要某行的 编号 在表中有两个以上,就查找出来.我写的代码执行效率很低(我是用compute逐行统计的,需要很长时间),求一个效率高的代码.

   

    我的要求举例:若表中总共有6行数据

 

 


图片点击可在新窗口打开查看此主题相关图片如下:临时表.jpg
图片点击可在新窗口打开查看

 

 

则我想查找出来的结果共4行,即:显示第1行,第3行,第5行,第6行.


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/9/6 12:19:00 [只看该作者]

这个系统命令呢: Syscmd.Filter.ShowSameValues()

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2011/9/6 12:29:00 [只看该作者]

以下是引用mr725在2011-9-6 12:19:00的发言:
这个系统命令呢: Syscmd.Filter.ShowSameValues()

我没看明白这个命令是怎么用的.

 

估计不行吧,我要的不是要查询完全相同的重复的行,我是要查询指定列有重复值的行.


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/9/6 13:40:00 [只看该作者]

正是你要的,不妨你试试看:选定你指定的列,执行2楼代码····


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/9/6 16:03:00 [只看该作者]

查找重覆行:

 

Dim Index As Integer
Dim drss As List(Of DataRow)
drss = DataTables("导入订单").Select("[零件代号]='" & Tables("导入订单").current("零件代号") & "'")
For Each dr As DataRow In drss
    Index= Tables("导入订单").FindRow(dr)
    If Index > -1 Then
        Tables("导入订单").Position = Index
            MessageBox.show("出现" & dr("零件代号") & "在" & Index & "行")
    End If
Next


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/9/6 16:04:00 [只看该作者]

保留一条数据,其余重覆全部删除

 

Dim t As Table =  Tables("导入订单")
t.Select(t.Rowsel,t.cols("零件代号").Index)
syscmd.Filter.ShowRedundantValues
For i As Integer = t.Rows.Count -1 To 0 Step -1
    t.rows(i).Delete
Next
t.filter = ""


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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2011/9/7 12:05:00 [只看该作者]

以下是引用mr725在2011-9-6 13:40:00的发言:

正是你要的,不妨你试试看:选定你指定的列,执行2楼代码····

可以了,谢谢!

 

只是帮助中对系统命令的说明太简单,有些看不明白什么意思.


 回到顶部