Foxtable(狐表)用户栏目专家坐堂 → [求助]重复值筛选出错


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

主题:[求助]重复值筛选出错

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


加好友 发短信
等级:一尾狐 帖子:400 积分:4856 威望:0 精华:0 注册:2017/2/7 7:41:00
[求助]重复值筛选出错  发帖心情 Post By:2018/12/14 21:07:00 [只看该作者]

对每日工作表的数据检查是否有重复的行(同一种操作台,出现一样的开始数或结束数)
用以下代码时,发现开始数为0时,即报重复值,其实表中开始数为0的行只有24#机与30#机各一行,不是重复值

Dim st1 As String
Dim st2 As String
Tables(e.Form.Name + "_table1").DataSource = DataTables("每日工作量")
Tables(e.Form.Name + "_table1").StopRedraw
For Each r As Row In Tables("操作台").rows
    Tables(e.Form.Name + "_table1").Filter = "[操作台] = '" & r("操作台号") & "'"
    Tables(e.Form.Name + "_table1").RepeatFilter("开始数",0)  ' 筛选方式,0表示显示重复值,1表示排除重复值,2表示显示冗余值,3表示显示唯一值
    
    If Tables(e.Form.Name + "_table1").Rows.Count >0 Then
        Tables(e.Form.Name + "_table1").ResumeRedraw
        MessageBox.Show(r("操作台号") + "的开始数据有重复")
        st1 + = r("操作台号") + "/"
        
    End If
    Tables(e.Form.Name + "_table1").RepeatFilter("结束数",0)
    If Tables(e.Form.Name + "_table1").Rows.Count >0 Then
        Tables(e.Form.Name + "_table1").ResumeRedraw
        MessageBox.Show(r("操作台号") + "的结束数据有重复")
        st2 + = r("操作台号") + "/"
        
    End If
Next
MessageBox.Show(st1 + "的开始数据有重复")
MessageBox.Show(st2 + "的结束数据有重复")
Tables(e.Form.Name + "_table1").ResumeRedraw
Tables(e.Form.Name + "_table1").Filter = ""

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:重复值筛选.table




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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/12/14 21:14:00 [只看该作者]

多列重复判断使用RepeatFilter是做不到的。


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


加好友 发短信
等级:一尾狐 帖子:400 积分:4856 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2018/12/14 21:43:00 [只看该作者]

蓝版主,是不是说,.RepeatFilter对于已筛选的条件不起作用,是对整个DataTables进行筛选检查?
我的第一个循环已只选一种操作台了,后面的条件只针对一个条件,开始数或结束数
[此贴子已经被作者于2018/12/14 21:50:22编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/12/14 21:58:00 [只看该作者]

做不了的

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


加好友 发短信
等级:一尾狐 帖子:400 积分:4856 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2018/12/14 22:24:00 [只看该作者]

做过测试的,只要不是0,不同操作台即使有重复的开始数或结束数,也不会报错。
只有为0,才显示重复,即使是不同的操作台。

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


加好友 发短信
等级:一尾狐 帖子:400 积分:4856 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2018/12/15 9:49:00 [只看该作者]

我发现是狐表计算重复值有个BUG,当表中数据只有一行时,该行会显示重复值。虽然这个错误可以通过代码来排除,但是最好还是修改下狐表本身代码,排除只有一行的重复值显示。

请蓝版主验证下

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


加好友 发短信
等级:狐神 帖子:4752 积分:34568 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2018/12/15 9:57:00 [只看该作者]

再测试一下,是没反应。
还有,1楼的问题可以通过生成一个表达式列解决的
[此贴子已经被作者于2018/12/15 10:03:22编辑过]

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


加好友 发短信
等级:一尾狐 帖子:400 积分:4856 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2018/12/15 10:02:00 [只看该作者]

可以增加一个操作台号,如31#机,再在每日工作量表中增加一行31#机的开始数与结束数,再执行,一样显示这一行是重复值,其实整个表31#机只有这一行。

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


加好友 发短信
等级:一尾狐 帖子:400 积分:4856 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2018/12/15 10:04:00 [只看该作者]

能稍讲这个表达式列的思路吗?

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


加好友 发短信
等级:一尾狐 帖子:400 积分:4856 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2018/12/15 10:14:00 [只看该作者]

我感得先按条件筛选,再求得重复值(除了只有一行数据),是没有问题。
可以看下以下二行简单的代码:

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

Tables("表C").Filter = "第二列 = '3'"
Tables("表C").RepeatFilter("第一列",0)

'Tables("表C").Filter = ""
输出为:

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


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:重复值筛选2.table

[此贴子已经被作者于2018/12/15 10:15:10编辑过]

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