如何在 Access VBA 中使用 like
Posted
技术标签:
【中文标题】如何在 Access VBA 中使用 like【英文标题】:How to use like in Access VBA 【发布时间】:2018-06-14 14:56:25 【问题描述】:我想根据组合框中的值过滤表单。此外,我希望能够根据组合框中输入的值过滤表单。就像我在组合框中部分输入内容一样,我希望表单在包含组合框中类型词的 guyname 字段中显示所有记录。但我似乎无法让它发挥作用。
Me.Filter = "[Guyname] ='" & Me.Combo21 & "'" & " AND [guyID] = '" & Me.Combo36 & "'"
Me.FilterOn = True
【问题讨论】:
看起来您并没有尝试在示例中使用 LIKE 。你试过了吗? 【参考方案1】:试试这个:
DoCmd.ApplyFilter , "guyName like '" & me.combo21 & "*'"
你明白了…… 不要忘记奇怪的逗号。提供条件字符串是第二个参数。
【讨论】:
谢谢您,先生,我用您的想法修改了我的代码,并且成功了。再次感谢【参考方案2】:这对我也有很大帮助,所以我想我会在其中添加 Filters re Numeric 、 Date 和 Text 过滤器的代码,所有这些过滤器都依赖于使用单引号、双引号或 # 来获得正确的过滤器标准。
Numeric Field Filter Setting
strFilter = "[DebitAccount] = " & Me.[Cbo-dbLedgerAcc]
***
Date Range Filter Setting
strsearchEntryDate = Format(CDate(Me.[Txt-EntryDate]), "mm/dd/yyyy")
strFilter = "[DebitEntryDate] = #" & strsearchEntryDate & "# "
strFilter = strFilter & "Or " & "[CreditEntryDate] = #" & strsearchEntryDate & "# "
Text Filter Setting
Dim Searchstring as string
SearchString = Me.[txt-DetString]
Option 1 Complete Text Match
strFilter = "MatchDescription = '" & Me.[txt-DetString] & "'"
Option 2 Word / Text Match
strFilter = "[MatchDescription] Like '*" & SearchString & "*'"
***
Me.Filter = strFilter
Me.FilterOn = True
'** Helpful to also Order Filter Results
Me.OrderBy = "MatchDescription Desc"
Me.OrderByOn = True
【讨论】:
【参考方案3】:在查询中:
Where [LastName] Like "*" & forms!FormName!ControlName & "*"
The form must be open when the query is run.
在表单上过滤表单?
对控件的更新后事件进行编码:
Me.Filter = "[LastName] Like '*" & [ControlName] & "*'"
Me.FilterOn = True
这些过滤器将返回包含文本任意位置的记录 字段。
【讨论】:
以上是关于如何在 Access VBA 中使用 like的主要内容,如果未能解决你的问题,请参考以下文章