首页 > 解决方案 > 子表单多条件查询不起作用?

问题描述

我有一个表单 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

标签: vbacriteriams-access-2016subform

解决方案


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

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


推荐阅读