如何解决如何在子句中使用通配符
是否可以使用#
之类的通配符来匹配以子句中的数字开头的项目
以下作品:
条件:In ("2T","2TF","2TC","2TO","2TFC","2TOC","2C","2CO","2FC")
但是我也想捕捉“ 3TF”和“ 6TF”之类的实例
但显然以下方法不起作用
条件:In ("T","#TF","#TC","#TO","#TFC","#TOC","#C","#CO","#FC")
有没有办法解决这个问题
解决方法
假设您要尝试使用任何单个整数前缀匹配记录的任何后缀,则可以使用like
和in
的组合,并使用{{1}删除第一个字符},例如:
mid
或者,仅使用myfield like "#*" and
mid(myfield,2) in ("T","TF","TC","TO","TFC","TOC","C","CO","FC")
:
like
在这里,myfield like #T or
myfield like #C or
myfield like #T[FCO] or
myfield like #T[FO]C or
myfield like #CO or
myfield like #FC
与T[FCO]
,TF
和TC
相匹配;同样,TO
匹配T[FO]C
和TFC
。
不能。添加赞:
Where
Field In ("2T","2TC","2TO","2TFC","2TOC","2C","2CO","2FC") Or
Field Like "#TF"
,
没有VBA,就不能,但是有了VBA,这很容易:
声明一个函数进行匹配:
Public Function InLike(DatabaseField As Variant,ParamArray LikeConditions() As Variant) As Boolean
Dim v As Variant
For Each v In LikeConditions
If DatabaseField Like v Then
InLike = True
Exit Function
End If
Next
End Function
然后使用它:
InLike (MyField,"T","#TF","#TC","#TO","#TFC","#TOC","#C","#CO","#FC")
请注意,第一个参数是字段,因此其处理方式略有不同。另外,由于它是VBA,因此会对性能和兼容性产生影响。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。