Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
小狐 发表于:2011/7/4 18:49:00

一列为:100201   100202 100203

设置如下筛选

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

为什么没有显示结果?

2楼
hhbb 发表于:2011/7/4 19:03:00
Dim a As String
a = "1002" & "**"
Tables("AA").Filter = "[第一列] Like '" & a & "'"
3楼
hhbb 发表于:2011/7/4 19:06:00
"?"不是匹配符

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

[姓名] Like '*赫*'

[姓名] Like '赫*'

[姓名] Like '*赫'

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

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

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

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

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

4楼
小狐 发表于: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楼
小狐 发表于:2011/7/4 19:12:00

换成# ,也不行啊

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

7楼
blackzhu 发表于:2011/7/4 19:52:00

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

 

 

hhbb的代码不是很好使吗?

8楼
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"吧.

9楼
小狐 发表于:2011/7/4 21:16:00
主要的目的就是限定在1002 加两个数字这个区间,多了,少了,排除在外,以做进一步的操作
共9 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 3 queries.