如何在 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的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Access 2003 和 VBA 中使用控件集合

access 的select语句如何like和in用在一起

如何在 VBA 代码中的 ms-access 中执行查询?

如何执行 VBA Access 模块?

如何在 Access VBA 中检查 Excel 时间值?

如何使用 VBA 在 Access 中关闭单个表单实例?