首页 > 解决方案 > 如何使用逗号分隔的字符串作为源过滤多个值的查询

问题描述

我有frmSelect允许用户从列表框中选择多个项目的表单。然后将用户的选择保存在 formfrmShowResults中。

列表框的结果以逗号分隔的字符串形式保存在 form 的文本框控件中frmShowResults,如下例所示:

1,4,7

然后我想frmShowResults根据这个选择进行过滤。我不能使用FilterOnLoad,因为表单底层查询有一个子查询,它似乎不起作用。这是 SQL 的frmShowResults

SELECT DISTINCT 
    tbl_Activity.ActivityID, tbl_Activity.DepartmentID, tbl_Activity.AStatusID, 
    tbl_Activity.ActivityName, tbl_Activity.Description, tbl_Activity.Archive, 
    tbl_Activity.OpenDate, tbl_Activity.DueDate1, tbl_Activity.DueDate2, 
    tbl_Activity.LastModified, tbl_Activity_Status.Activity_Status, tbl_Department.DepartmentShort
FROM 
    tbl_Department INNER JOIN 
    (tbl_Activity_Status INNER JOIN 
    (tbl_Activity INNER JOIN qry_ReportGenerator3_1 ON 
        (tbl_Activity.ActivityID = qry_ReportGenerator3_1.ActivityID) AND 
        (tbl_Activity.ActivityID = qry_ReportGenerator3_1.ActivityID)) ON 
        tbl_Activity_Status.AStatusID = tbl_Activity.AStatusID) ON 
        tbl_Department.DepartmentID = tbl_Activity.DepartmentID
WHERE (((tbl_Activity.Archive)=False));

我尝试在查询设计视图中设置公式,例如In ([Forms]![frm_ReportGenerator2]![txtBusAreaWhere])

Access 不会正确评估语句并且不返回任何记录。但是,如果我手动输入它,它确实会产生正确数量的记录In (1;4;7)注意:我的区域设置要求我使用分号作为分隔符。

给定逗号分隔的字符串源,如何让我的查询正确过滤?

标签: sqlms-access

解决方案


推荐阅读