Foxtable(狐表)用户栏目专家坐堂 → 为何匹配筛选,无结果


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

主题:为何匹配筛选,无结果

帅哥哟,离线,有人找我吗?
小狐
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:734 积分:5645 威望:0 精华:0 注册:2008/9/6 11:22:00
为何匹配筛选,无结果  发帖心情 Post By:2011/7/4 18:49:00 [只看该作者]

一列为:100201   100202 100203

设置如下筛选

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

为什么没有显示结果?


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


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By:2011/7/4 19:03:00 [只看该作者]

Dim a As String
a = "1002" & "**"
Tables("AA").Filter = "[第一列] Like '" & a & "'"

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


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By:2011/7/4 19:06:00 [只看该作者]

"?"不是匹配符

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

[姓名] Like '*赫*'

[姓名] Like '赫*'

[姓名] Like '*赫'

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

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

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

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

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


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


加好友 发短信
等级:三尾狐 帖子:734 积分:5645 威望:0 精华:0 注册:2008/9/6 11:22:00
  发帖心情 Post By: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]##") '匹配


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


加好友 发短信
等级:三尾狐 帖子:734 积分:5645 威望:0 精华:0 注册:2008/9/6 11:22:00
  发帖心情 Post By:2011/7/4 19:12:00 [只看该作者]

换成# ,也不行啊


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


加好友 发短信
等级:三尾狐 帖子:734 积分:5645 威望:0 精华:0 注册:2008/9/6 11:22:00
  发帖心情 Post By:2011/7/4 19:16:00 [只看该作者]

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


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


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

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

 

 

hhbb的代码不是很好使吗?


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


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By: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"吧.


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


加好友 发短信
等级:三尾狐 帖子:734 积分:5645 威望:0 精华:0 注册:2008/9/6 11:22:00
  发帖心情 Post By:2011/7/4 21:16:00 [只看该作者]

主要的目的就是限定在1002 加两个数字这个区间,多了,少了,排除在外,以做进一步的操作

 回到顶部