Foxtable(狐表)用户栏目专家坐堂 → 字符串包含筛选


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

主题:字符串包含筛选

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
字符串包含筛选  发帖心情 Post By:2012/12/22 10:20:00 [显示全部帖子]

以下是表A[文件名]列的包含筛选
Dim Filter As String
With e.Form.Controls("文件名")
    If .Value IsNot Nothing Then
        Filter = "文件名 Like '*" & .Value & "*'"  '筛选文本框中与文件名字符串匹配的记录
    End If
End With
Tables("表A").filter = Filter
[文件名]列是由 文件路径 + 文件夹 + 文件名组成,比如:\\服务器\文件夹\GB/T 5023-2008  PVC绝缘电线.doc
以上代码的筛选包含了路径和文件夹,我只想对文件名进行包含筛选,谁能帮我修改一下代码。

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2012/12/22 10:51:00 [显示全部帖子]

[文件名]列是字符型,记录为:\\服务器\文件夹\GB/T 5023-2008  PVC绝缘电线.doc

以上代码可以进行正常筛选,但包含了路径和文件夹,我只是想对“\”后面的字符(GB/T 5023-2008  PVC绝缘电线.doc)进行包含筛选。比如,我在文本框输入“文件”,它也会筛选出如上文件,实际上这个文件不是我要筛选的。

不知我说明白没有。

[此贴子已经被作者于2012-12-22 10:54:57编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2012/12/22 11:15:00 [显示全部帖子]

小林老师的思路我不明白,下午传个示例文件上来。

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2012/12/22 13:55:00 [显示全部帖子]

以下示例:表A窗口,在文本框分别输入“公司”,我需要筛选的是第2条记录,结果全筛选了。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目9.table


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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2012/12/22 14:31:00 [显示全部帖子]

以下是引用blackzhu在2012-12-22 14:19:00的发言:
Dim Filter,s1 As String
Dim idxs As String = ""
s1= e.Form.Controls("文件名称").Value
If s1 > "" Then
    For Each r As Row In Tables("表A").rows
        Dim idx As Integer = r("文件名称").LastIndexOf("\")
        If r("文件名称").Substring(idx) Like "*" & s1 & "*" Then
            idxs += r("_identify") & ","
        End If
    Next
End If
Tables("表A").Filter = "_Identify in (" & idxs.Trim(",") & ")"

就是这个效果,谢了。也谢谢小林老师。


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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2012/12/22 14:35:00 [显示全部帖子]

不好意思,有点问题。我要的是包含筛选,在文本框输入“公司,手册”,应该筛选第1和第2条记录。

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2012/12/22 15:33:00 [显示全部帖子]

以下是引用lin_hailun在2012-12-22 15:06:00的发言:
正常,如果想要按照空格分割查询,可以这样。

Dim idxs As String = ""
Dim s1 As String = e.Form.Controls("文件名称").Value
If s1 > "" Then
    Dim arys() As String = s1.Split(" ")
    For Each r As Row In Tables("表A").rows
        Dim idx As Integer = r("文件名称").LastIndexOf("\")
        For Each ary As String In arys
            If r("文件名称").Substring(idx) Like "*" & ary & "*" Then
                idxs += r("_identify") & ","
            End If
        Next
    Next
    Tables("表A").Filter = "_Identify in (" & idxs.Trim(",") & ")"
End If

不能包含筛选


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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2012/12/22 15:57:00 [显示全部帖子]

以下是引用lin_hailun在2012-12-22 15:38:00的发言:
 呃,不懂你的意思。

本字符串包含筛选有两个需求:1、部分字符串筛选,上面代码已经解决;2、包含筛选,看7楼的实例(窗口表A中“筛选按钮”代码)和11楼描述。


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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2012/12/22 16:27:00 [显示全部帖子]

可以了,希望加个容错的条件:即13楼的问题,否则会跳出错误提示窗口


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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2012/12/22 18:44:00 [显示全部帖子]

以下是引用lin_hailun在2012-12-22 16:31:00的发言:
 
Dim idxs As String = ""
Dim s1 As String = e.Form.Controls("文件名称").Value
If s1 > "" Then
   
Dim arys() As String = s1.Split(",")    '注意逗号   小林写的空格
    For Each r As Row In Tables("表A").rows
        Dim idx As Integer = r("文件名称").LastIndexOf("\")
        For Each ary As String In arys
            If r("文件名称").Substring(idx) Like "*" & ary & "*" Then
                idxs += r("_identify") & ","
            End If
        Next
    Next
    If idxs > "" then
Tables("表A").Filter = "_Identify in (" & idxs.Trim(",") & ")"
End If

很满意


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