Foxtable(狐表)用户栏目专家坐堂 → [求助]重复行,去重的问题。


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

主题:[求助]重复行,去重的问题。

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


加好友 发短信
等级:幼狐 帖子:71 积分:757 威望:0 精华:0 注册:2017/5/31 20:05:00
[求助]重复行,去重的问题。  发帖心情 Post By:2017/7/30 23:13:00 [只看该作者]

我的“勤务排班管理窗口”

如图,有“去重”按钮

 

重复排班的判定依据为:日期,飞机号,航班号,航段,安全员  这5个字段同时重复才判定为重复数据。

 

点击去重按钮,

自动将重复的数据自动合并为一条(只显示一条)。

请问去重按钮的代码如何编写。

绑定表名为“勤务信息表”


 


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

 

 

之前提问过此问题,您回答

 

我自己修改代码为:

'----删除重复,参考代码-------

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("勤务信息表").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("勤务信息表").Filter = "_Identify not In (" & idx.trim(",") & ")"
DataTables("勤务信息表").DeleteFor("_Identify not In (" & idx.trim(",") & ")")

 

运行后错误如下

 

 

 


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/7/30 23:19:34编辑过]

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


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

If pdr(c).replace(" ","") <> dr(c).replace(" ", "") Then

 

改成

 

If pdr(c) <> dr(c) Then


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


加好友 发短信
等级:幼狐 帖子:71 积分:757 威望:0 精华:0 注册:2017/5/31 20:05:00
  发帖心情 Post By:2017/7/31 18:52:00 [只看该作者]

按照这个方法,修改代码
不行,整个表都空了。
请问怎么处理?
 
以下是引用有点甜在2017/7/31 8:48:00的发言:

If pdr(c).replace(" ","") <> dr(c).replace(" ", "") Then

 

改成

 

If pdr(c) <> dr(c) Then


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106158 积分:539907 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/7/31 20:25:00 [只看该作者]

直接比较不应该有问题,上传实例测试

 回到顶部