以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  为何匹配筛选,无结果  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=11025)

--  作者:小狐
--  发布时间:2011/7/4 18:49:00
--  为何匹配筛选,无结果

一列为:100201   100202 100203

设置如下筛选

Dim a As String
a = "1002" & "??"
Tables("会计科目表").Filter = "[科目代码] like \'"& a &"\' "

为什么没有显示结果?


--  作者:hhbb
--  发布时间:2011/7/4 19:03:00
--  
Dim a As String
a = "1002" & "**"
Tables("AA").Filter = "[第一列] Like \'" & a & "\'"

--  作者:hhbb
--  发布时间:2011/7/4 19:06:00
--  
"?"不是匹配符

在 Like 比较中,* 和 % 作为通配符,两者可以互换,表示任意个数的字符,通配符只能在开头或者结尾出现。例如:

[姓名] Like \'*赫*\'

[姓名] Like \'赫*\'

[姓名] Like \'*赫\'

分别表示姓名中包括“赫”,姓名开头是“赫”(姓赫),姓名结尾是“赫”

在字符串的中间不允许使用通配符。例如,不允许 \'赫*丰\'

由于* 和 % 默认作为通配符,如果要将其作为比较内容的一部分,必须用方括号括起来,例如:

[型号] Like \'A[*]*\'

表示型号以“A*”开头。


--  作者:小狐
--  发布时间:2011/7/4 19:09: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]##") \'匹配


--  作者:小狐
--  发布时间:2011/7/4 19:12:00
--  

换成# ,也不行啊


--  作者:小狐
--  发布时间:2011/7/4 19:16:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:aaaa.table


--  作者:blackzhu
--  发布时间:2011/7/4 19:52:00
--  

Dim a As String
a = "1001" & "**"
Tables("表A").Filter = "[第一列] Like \'" & a & "\'"

 

 

hhbb的代码不是很好使吗?


--  作者:hhbb
--  发布时间:2011/7/4 20:08:00
--  
以下是引用小狐在2011-7-4 19:09: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]##"\'匹配

这个是代码中的"Like",不是表达式中的"Like"吧.


--  作者:小狐
--  发布时间:2011/7/4 21:16:00
--  
主要的目的就是限定在1002 加两个数字这个区间,多了,少了,排除在外,以做进一步的操作