以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 阿可学艺[013]:请教:如何筛选出备注字段中包含多个字符串的记录? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=20978) |
-- 作者:szljd0 -- 发布时间:2012/6/26 11:29:00 -- 阿可学艺[013]:请教:如何筛选出备注字段中包含多个字符串的记录? 例如: 有3个字符串,分别是str1、str2和str3。表中有个备注字段[备注]。我想筛选出[备注]同时包含str1、str2和str3三个字符串的记录。
请教了各位老师。 |
-- 作者:狐狸爸爸 -- 发布时间:2012/6/26 11:34:00 -- tables("xxx").Filter = "备注 like ‘*" & Str1 & "*\' And 备注 Like \'*" & Str2 & "*\' And 备注 Like \'*" & Str3 & "*\'" |
-- 作者:szljd0 -- 发布时间:2012/6/26 11:40:00 -- 谢谢狐爸。 但是有个问题,如果其中有个字符串为空时会出错。如何解决?是否要用到selectcase语句呢? |
-- 作者:狐狸爸爸 -- 发布时间:2012/6/26 12:05:00 -- 你可以判断的啊:
Dim Filter As string If Str1 > " Then Filter = "备注 like ‘*" & Str1 & "*\'" End if If Str2 > "" Then if Filter > "" Then Filter = Filter & " And " End If Filter = Filter & "备注 like ‘*" & Str2 & "*\'" End If If Str3 > "" Then if Filter > "" Then Filter = Filter & " And " End If Filter = Filter & "备注 like ‘*" & Str3 & "*\'" End If Tables("XXX").Filter = Filter
建议看看: http://www.foxtable.com/help/topics/1058.htm
|
-- 作者:程兴刚 -- 发布时间:2012/6/26 13:26:00 -- 动态合成Fileter字符串的另一种方法,这里可以是Str1~StrN,这个看起来不起眼的思路,可以为大家的模糊筛选、模糊查询组合条件字符串打开一个思路,基本上无需修改其他代码:
Dim Filter As String = """备注 Like \'*" & Str1 & "*\' And 备注 Like \'*" & Str2 & "*\' And 备注 Like \'*" & Str3 & "*\'""" \'这里先写好Str1~StrN的全部条件字符串 End If
[此贴子已经被作者于2012-6-26 13:34:38编辑过]
|
-- 作者:hanxuntx -- 发布时间:2012/6/26 13:43:00 -- 加精啊 |
-- 作者:程兴刚 -- 发布时间:2012/6/26 14:44:00 -- 多列筛选或模糊查询的时候需要在这个的基础上加以修改,多列的话,嵌套循环应该很方便地解决了,主要更方便任意组合筛选。 [此贴子已经被作者于2012-6-26 14:50:45编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2012/6/26 15:50:00 -- 如果特别多,可以用数组:
Dim Vals(10) As String |
-- 作者:程兴刚 -- 发布时间:2012/6/26 15:53:00 -- 我顶! |
-- 作者:szljd0 -- 发布时间:2012/6/26 19:52:00 -- 谢谢各位,我的方法如下,已试成功。敬请各位老师评点:
Dim Str0 As String = "000" |