我正在使用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的引用。任何想法?
答案 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。修复编译器抱怨的任何内容,然后重新编译。重复,直到没有编译错误。