Foxtable(狐表)用户栏目专家坐堂 → [求助]含有窗口文本框中字符2个以上的行筛选出来


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

主题:[求助]含有窗口文本框中字符2个以上的行筛选出来

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


加好友 发短信
等级:幼狐 帖子:113 积分:974 威望:0 精华:0 注册:2023/6/18 23:26:00
[求助]含有窗口文本框中字符2个以上的行筛选出来  发帖心情 Post By:2024/8/28 0:20:00 [只看该作者]

求助 含有窗口文本框中字符2个以上的行筛选出来

图片点击可在新窗口打开查看此主题相关图片如下:2录入a筛选出第3、5、6绿色这3行.jpg
图片点击可在新窗口打开查看

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2024/8/28 8:19:00 [只看该作者]

Dim s, s1, Filter As String
s = Forms("窗口1").Controls("textbox1").Value
For Each dr As DataRow In DataTables("表A").DataRows
    s1 = dr("第一列")
    If s1.Length - s1.Replace(s, "").Length > s.Length * 2 - 1 Then
        If Filter.Contains(s1) = False Then
            Filter = Filter & "|" & s1
        End If
    End If
Next
Filter = Filter.Trim("|")
Filter = "第一列 = '" & Filter.Replace("|", "' and 第一列 = '") & "'"
Tables("表A").Filter = Filter

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2024/8/28 8:22:00 [只看该作者]

Tables("表A").Filter = ""
Dim s, s1, Filter As String
s = Forms("窗口1").Controls("textbox1").Value
For Each dr As DataRow In DataTables("表A").DataRows
    s1 = dr("第一列")
    If s1.Length - s1.Replace(s, "").Length > s.Length * 2 - 1 Then
        If Filter.Contains(s1) = False Then
            Filter = Filter & "|" & s1
        End If
    End If
Next
Filter = Filter.Trim("|")
Filter = "第一列 = '" & Filter.Replace("|", "' and 第一列 = '") & "'"
Tables("表A").Filter = Filter

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


加好友 发短信
等级:幼狐 帖子:113 积分:974 威望:0 精华:0 注册:2023/6/18 23:26:00
回复:(程兴刚)Tables("表A").Filter = ""Dim s, s1...  发帖心情 Post By:2024/8/28 8:32:00 [只看该作者]

感谢程总,这么早哈
程总,上面代码执行没效果,报错,有空,辛苦帮忙再看看

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:窗口,窗口1,Button3,Click
详细错误信息:
未将对象引用设置到对象的实例。


还有一点要求就是想不是固定表A第一列,想动态表当前列都能实现这个搜索功能
        Dim t As Table = currenttable
        Dim tb As String = t.cols(t.colsel).name

[此贴子已经被作者于2024/8/28 8:34:05编辑过]

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


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/8/28 8:46:00 [只看该作者]

Dim s, s1, Filter As String
s = Forms("窗口1").Controls("combobox1").text
For Each dr As DataRow In DataTables("表A").DataRows
    s1 = dr("第一列")
    If s1.Length - s1.Replace(s, "").Length >= 2 Then
        Filter = Filter & "," & dr("_identify") 
    End If
Next
Filter = Filter.Trim(",")
Filter = "_identify in (" & Filter & ")"
Output.Show(filter)
Tables("表A").Filter = Filter

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2024/8/28 8:57:00 [只看该作者]

.Value改为.text即可,我的的码考虑了a可以为一个连续的字符串,因为没有看您的文件,控件、表、字段名称自己修改,估计报错的原因是您修改后currenttable的问题,也就currenttable不存在!

 回到顶部