VBA for Access以单独的形式应用过滤器

时间:2016-06-10 19:34:07

标签: vba ms-access access-vba ms-access-2013

我正在使用Access 2013中的数据库,我想使用一个表单将过滤器应用于另一个表单。有问题的表单称为高级搜索,我希望它使用输入到文本框中的关键字将过滤器应用到名为FormA的拆分表单上。每当我单击搜索按钮时,都会收到“运行时错误424:需要对象”。

Private Sub Search_Click() 'Applies a filter based on search Criteria
    Forms!FormA.Filter = _
    "Field1 Like '*" & SearchBox.Value & "*' And Field2 Like '*" & SearchBox.Value & "*'"
    Forms!FormA.FilterOn = True
End Sub

我觉得好像我搞砸了FormA的引用。任何想法?

1 个答案:

答案 0 :(得分:1)

"所需对象" 错误是由SearchBox.Value引起的。 Access在表单(高级搜索)中找不到包含SearchBox命令按钮的名为Search的控件。

找到正确的名称后,我建议你像这样建立Filter字符串......

Dim strFilter As String
strFilter = "Field1 Like '*" & Me![YourSearchBoxNameHere].Value & _
    "*' And Field2 Like '*" & Me![YourSearchBoxNameHere].Value & "*'"
Debug.Print strFilter '<- inspect this in Immediate window; Ctrl+g will take you there

然后应用Filter ...

Forms!FormA.Filter = strFilter
Forms!FormA.FilterOn = True

还在所有代码模块的声明部分中包含Option Explicit。然后从VB编辑器的主菜单中运行Debug-&gt; Compile。修复编译器抱怨的任何内容,然后重新编译。重复,直到没有编译错误。