【问题标题】:Search Multiple fields on an MS Access form using a textbox linked to a subform使用链接到子表单的文本框搜索 MS Access 表单上的多个字段
【发布时间】:2018-07-09 16:09:42
【问题描述】:

我想从主表单上的未绑定文本框中搜索子表单的多个字段,但它似乎没有过滤任何内容。也没有出现错误消息。我的代码是:

Private Sub btnSearch2_Click()
Dim strfilter As String

If Me.GlobalSearch.Value <> "" Then
Me.FilterOn = False
Me.GlobalSearch.SetFocus
Else
strfilter = "(HarvestId LIKE '*" & Me.GlobalSearch.Value & "*' OR "
strfilter = strfilter & "AssignedTo LIKE '*" & Me.GlobalSearch.Value & "*' OR "
strfilter = strfilter & "HarvestStatus LIKE '*" & Me.GlobalSearch.Value & "*')"
End If
'If strfilter <> "" Then
'Me.Filter = strfilter
'Me.FilterOn = True
'Else
'Me.FilterOn = False
'End If
End Sub

其中 GlobalSearch 是搜索文本框,而 HarvestId、AssignedTo 和 HarvestStatus 是我要在子表单中搜索的字段。为什么代码不起作用? 谢谢 马里

【问题讨论】:

  • 首先,你意识到你的代码的最后几行被注释了吗?您已经提到您正在尝试搜索 子表单 中的字段,但是由于您在事件处理程序中使用 Me 关键字来查找可能位于 parent 上的元素表单,过滤器被应用到 parent 表单,而不是子表单。
  • 好的,谢谢,忘了我已经注释掉了一些代码。除此之外,我需要对代码进行哪些更改以便搜索子表单而不是主表单? GlobalSearch 是父表单上的搜索文本框。

标签: database ms-access vba ms-access-2010


【解决方案1】:

假设您的子表单名为 HarvestSub,请将您的注释代码替换为:

If strfilter <> "" Then
    Me.HarvestSub.Form.Filter = strfilter
    Me.HarvestSub.Form.FilterOn = True
Else
    Me.HarvestSub.Form.FilterOn = False
End If

【讨论】:

    猜你喜欢
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多