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


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

主题:字符串包含筛选

帅哥哟,离线,有人找我吗?
实话实说
  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
以上代码的筛选包含了路径和文件夹,我只想对文件名进行包含筛选,谁能帮我修改一下代码。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/22 10:34:00 [只看该作者]

 如果要对文件名进行筛选的话,只能是遍历一次整个表了,然后再设置筛选条件。

 不能取巧的,除非你的文件名较为特殊。比如,是特定的格式。
[此贴子已经被作者于2012-12-22 10:34:26编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
实话实说
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/22 10:56:00 [只看该作者]

以下是引用实话实说在2012-12-22 10:51:00的发言:

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

以上代码可以进行正常筛选,但包含了路径和文件夹,我只是想对“\”后面的字符(GB/T 5023-2008  PVC绝缘电线.doc)进行包含筛选,不知我说明白没有。


不可以直接筛选的。

for each r as row in tables().rows
   '自己编写代码匹配吧,记录下_Identify,最后筛选
next

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


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

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

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/22 11:31:00 [只看该作者]

 比如这样。

 dim idxs as string = ""
 for each r as row in tables().rows
     dim idx as integer = r("文件名").LastIndexOf("\")
     if r("文件名").Substring(idx) like "*" & value & "*" Then
         idxs += r("_identify") & ","
    end if
 next

 tables().filter = "_Identify in (" & idxs.Trim(",") & ")"

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


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

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

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


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


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

你这个如果输入公司的话 应该是筛选三条数据的呀.

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By: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(",") & ")"

 回到顶部
帅哥哟,离线,有人找我吗?
实话实说
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | 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(",") & ")"

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


 回到顶部
总数 24 1 2 3 下一页