以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 字符串包含筛选 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=27110) |
||||
-- 作者:实话实说 -- 发布时间: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 -- 发布时间:2012/12/22 10:34:00 -- 如果要对文件名进行筛选的话,只能是遍历一次整个表了,然后再设置筛选条件。 不能取巧的,除非你的文件名较为特殊。比如,是特定的格式。 [此贴子已经被作者于2012-12-22 10:34:26编辑过]
|
||||
-- 作者:实话实说 -- 发布时间: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 -- 发布时间: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 |
||||
-- 作者:实话实说 -- 发布时间:2012/12/22 11:15:00 -- 小林老师的思路我不明白,下午传个示例文件上来。 |
||||
-- 作者:lin_hailun -- 发布时间: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(",") & ")" |
||||
-- 作者:实话实说 -- 发布时间:2012/12/22 13:55:00 -- 以下示例:表A窗口,在文本框分别输入“公司”,我需要筛选的是第2条记录,结果全筛选了。
|
||||
-- 作者:blackzhu -- 发布时间:2012/12/22 14:14: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(",") & ")"
|
||||
-- 作者:实话实说 -- 发布时间: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(",") & ")" 就是这个效果,谢了。也谢谢小林老师。 |