问题描述
因此,我设置了一个表单,该表单可以使用找到的动态多重搜索工具在多个字段中搜索 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。