搜索列表到过滤表单 ms-access

问题描述

因此,我设置了一个表单,该表单可以使用找到的动态多重搜索工具在多个字段中搜索 here。目前,它使用带有 ondoubleclick 事件的列表框以另一种形式打开搜索列表中的单个记录,方法如下

Private Sub SearchResults_DblClick(Cancel As Integer)

    Dim stDocName As String
    Dim stLinkCriteria As String

    stDocName = "frm_MainEntryForm"

    stLinkCriteria = "[ID_UniqueID]=" & Me![SearchResults]
    DoCmd.OpenForm stDocName,stLinkCriteria

End Sub

理想情况下,我可以选择打开找到的所有记录。我想这可以通过以某种方式过滤表单来实现,其中表单的 ID_UniqueID 列与搜索结果框的 ID_UniqueID 列中的所有值相匹配。

这甚至可能吗?我不确定如何设置或从哪里开始?有人可以帮忙吗?

解决方法

可以使用 UNION 查询将“ALL”选项构建到列表框 RowSource 中。

因为搜索条件中没有内置撇号分隔符,所以我认为 ID_uniqueID 是用户看不到的数字字段,而是看到描述性别名:

SELECT 0,"ALL" AS Data FROM tablename
UNION SELECT ID_UniqueID,fieldname FROM tablename;

然后代码测试是否选择了 0 项:

If Me.SearchResults <> 0 Then
    stLinkCriteria = "[ID_UniqueID]=" & Me![SearchResults]
End If

有关构建搜索条件的另一种方法,请查看 http://allenbrowne.com/ser-62.html