【问题标题】:Subform multi criteria query not working?子表单多条件查询不起作用?
【发布时间】:2021-06-04 06:19:01
【问题描述】:

我有一个表单 frmTagSearch,其中包含一个文本框 txtSearchTerm 一个搜索按钮 btnSearch 和一个子表单 subfrmTagQuery.

子表单是使用向导从预先存在的查询qryStakeholderTag 创建的。查询本身没有条件。

目的是使用txtSearchTerm 的值来让子表单显示qryStakeholderTag 中的那些记录,其中txtSearchTerm 值出现在任何组织、角色或通讯注释字段中。

我的代码如下(调试行是为了检查我有正确的引号)。在大多数情况下,这不会返回任何记录,尽管对于一个搜索词,查询确实会返回 3 条记录——不是“正确”的数字,但至少它似乎在做某事。

谁能告诉我这里哪里出错了?我几乎从另一个论坛复制了代码,它被标记为类似问题的答案。

Private Sub btnSearch_Click()

If Me.txtSearchTerm = vbNullString Then Exit Sub

Me.subfrmTagQuery.Form.RecordSource = "SELECT * FROM qryStakeholderTag WHERE Organisation LIKE '*" & Me.txtSearchTerm & _
    "*' OR qryStakeholderTag.Role LIKE '*" & Me.txtSearchTerm & _
    "*' OR qryStakeholderTag.[Comms Notes] LIKE '*" & Me.txtSearchTerm & "*'"
Debug.Print Me.subfrmTagQuery.Form.RecordSource
Me.subfrmTagQuery.Requery

End Sub

【问题讨论】:

  • 我可能应该补充一点,subfrmTagQuery 有作为它的记录源 qryStakeholderTag,但我认为这应该在每次单击 btnSearch 时被代码覆盖......?
  • @HansUp 该行显示了我希望看到的记录源字符串,但由于它只是一个字符串,它可以真正显示任何内容。

标签: vba criteria ms-access-2016 subform


【解决方案1】:

昨晚我得到了 eureka/d'oh 时刻。子表单所基于的查询有两个源表,StakeholdersOrganisationsStakeholders 有一个链接到 Organisations!Organisation 的查找字段;我已将 Stakeholders!Organisation 字段拉入查询,因此 RecordSource 试图在仅包含查找 ID 索引的字段中查找搜索字符串。我的辩护,除了有点慢之外,当然是查询显示了预期的文本。

修改查询设计以包含 Organisations!Organisation 字段已解决此问题。 :)

【讨论】:

    猜你喜欢
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    • 2021-07-07
    • 2013-09-04
    • 1970-01-01
    • 2015-11-06
    • 1970-01-01
    相关资源
    最近更新 更多