以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- [求助]动态合成表达式的问题!! (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=25720)
|
-- 作者:gaoyong30000
-- 发布时间:2012/11/15 11:28:00
-- [求助]动态合成表达式的问题!!
Dim s As String = Tables("综合部物品分类设置_综合部物品分类设置Table1").current("分类编号")
Tables("综合部物品分类设置_综合部物品分类设置Table1").filter = "分类编号 Like \'" & s & "%\'"
上面这个 换成
Tables("综合部物品分类设置_综合部物品分类设置Table1").filter = "分类编号 Like \'" & s & "???\'" 有问题嘛 貌似我最后筛选不出想要的数据~~
|
-- 作者:lin_hailun
-- 发布时间:2012/11/15 11:32:00
--
如果是sqlserver数据库的话,? 改成 _
|
-- 作者:程兴刚
-- 发布时间:2012/11/15 11:36:00
--
注意匹配符号的规律:
Like运算符
Like使用通配符来比较字符串。
可用的通配符有:
字符 |
说明 |
? |
任何单个字符 |
* |
零或多个字符 |
# |
任何单个数字(0 到 9) |
[字符列表] |
字符列表中的任何单个字符,例如[abx]表示a、b、x三个字符中的任何一个。 |
[!字符列表] |
不在字符列表中的任何单个字符,例如[!abx]表示除a、b、x之外的任何一个字符。 |
方括号中的字符列表,可以使用连字符 (–) 将范围的上下限分开,例如[a-e]表示字母a到e中的任意一个,[a-z]就表示任意一个字母,而[0-9]表示任意一数字。
将下面的代码复制到命令窗口执行,请留意注释和执行结果:
\'任意3个字符,后接3个数字 Output.Show( "ABC123" Like "???###") \'匹配 Output.Show( "A1212A" Like "???###") \'不匹配 \'任意一个字符,随后是ABC三字符中的任意一个 Output.Show( "RB" Like "?[ABC]") \'匹配 Output.Show( "RD" Like "?[ABC]") \'不匹配 \'任意一个字符,随后是除ABC三字符之外的任意一个字符 Output.Show( "RB" Like "?[!ABC]") \'不匹配 Output.Show( "RD" Like "?[!ABC]") \'匹配 \'任意一个字母,随后是两个数字 Output.Show( "a12" Like "[a-z]##") \'匹配 Output.Show( "112" Like "[a-z]##") \'不匹配
|
-- 作者:gaoyong30000
-- 发布时间:2012/11/16 9:26:00
--
Dim s As String = Tables("综合部物品分类设置_综合部物品分类设置Table1").current("分类编号")
Tables("综合部物品分类设置_综合部物品分类设置Table1").filter = "分类编号 Like \'" & s & "___\'"
貌似还是不行~~~
|
-- 作者:lin_hailun
-- 发布时间:2012/11/16 9:29:00
--
有例子不?不会有这样的问题吧?
|
-- 作者:gaoyong30000
-- 发布时间:2012/11/16 10:03:00
--
采用的sqltable型
Dim s As String = Tables("综合部物品分类设置_综合部物品分类设置Table1").current("分类编号") Dim i As Integer = s.LastIndexOf(".") s = s.SubString(0,i)
Tables("综合部物品分类设置_综合部物品分类设置Table1").filter = "分类编号 Like \'" & s & "___\'"
此主题相关图片如下:1.jpg
[此贴子已经被作者于2012-11-16 10:04:12编辑过]
|
-- 作者:lin_hailun
-- 发布时间:2012/11/16 10:11:00
--
楼主,你是想筛选同级的行吗?直接比较字符数不行么?
Dim s As String = Tables("综合部物品分类设置_综合部物品分类设置Table1").current("分类编号") Tables("综合部物品分类设置_综合部物品分类设置Table1").filter = "len(分类编号) = " & s.Length
|
-- 作者:gaoyong30000
-- 发布时间:2012/11/16 10:32:00
--
麻烦了~!
您那代码是筛选出相同长度的行,我的想法是:比如下图的我选择的是01.03.02 ,我要筛选的是01.03开头的同级行,而不是全部的同级行
此主题相关图片如下:2.jpg
|
-- 作者:gaoyong30000
-- 发布时间:2012/11/16 10:35:00
--
以下是引用lin_hailun在2012-11-16 10:11:00的发言:
楼主,你是想筛选同级的行吗?直接比较字符数不行么?
Dim s As String = Tables("综合部物品分类设置_综合部物品分类设置Table1").current("分类编号") Tables("综合部物品分类设置_综合部物品分类设置Table1").filter = "len(分类编号) = " & s.Length
有个很奇怪的地方 filter 后面的条件 不是需要 “ ” 括起来吗 您这怎么不需要?
|
-- 作者:lin_hailun
-- 发布时间:2012/11/16 10:37:00
--
哦哦,那就这样。
Dim s As String = Tables("综合部物品分类设置_综合部物品分类设置Table1").current("分类编号") Dim i As Integer = s.LastIndexOf(".") s = s.SubString(0,i)
Tables("综合部物品分类设置_综合部物品分类设置Table1").filter = "Left(分类编号, " & i & ") = s And len(分类编号) = " & s.Length
|