使用 Microsoft Access 表单过滤来自多个列表框、文本框和组合框的数据

Using Microsoft Access form to filter data from Multiple Listboxes, Textboxes and a ComboBox

如果没有 运行 错误,我仍然无法做到这一点。

对于我正在做的一个项目,我正在使用 Microsoft Access 创建一个数据库,该数据库将用于根据从 Multiple multi 输入的信息从一个 table 中过滤出一份报告的数据-select 个列表框、多个文本框和一个组合框。

我知道如何处理一个 Multi-Select 列表框,但我在添加我的其他 multi-select 列表框时遇到问题。是否可以只从一个来源完成所有工作,还是我将不得不使用多个 tables?

如果我能够从一个 table(作为来源)做到这一点,我将如何去做并添加文本框和组合框?如果需要,我可以提供我目前拥有的代码。

https://access-programmers.co.uk/forums/showthread.php?t=286294&page=2

代码:

私人订阅 Command62_Click()

Dim db As DAO.Database

将 qdf 变暗为 DAO.QueryDef

将 varItem 变暗为变体

将 strCriteria 变暗为字符串

将 strCriteria1 变暗为字符串

将 strCriteria2 变暗为字符串

将 strSQL 变暗为字符串

设置 db = CurrentDb()

设置 qdf = db.QueryDefs("qryMultiselect")

对于我中的每个 varItem!District.ItemsSelected

strCriteria = strCriteria & ",'" & Me!District.ItemData(varItem) & "'"

下一个变量

如果 Len(strCriteria) = 0 那么

MsgBox "You did not select anything in the Contract field." _

    , vbExclamation, "Nothing to find!"

Exit Sub

如果

结束
strCriteria = Right(strCriteria, Len(strCriteria) - 1)

对于我中的每个 varItem!MOPointofEntry.ItemsSelected

strCriteria1 = strCriteria1 & ",'" & Me!MOPointofEntry.ItemData(varItem) & "'"

下一个变量

如果 Len(strCriteria1) = 0 那么

MsgBox "You did not select anything in the Name field." _

    , vbExclamation, "Nothing to find!"

Exit Sub

如果

结束
strCriteria1 = Right(strCriteria1, Len(strCriteria1) - 1)

对于我中的每个 varItem!MOMethodofEntry.ItemsSelected

strCriteria2 = strCriteria2 & ",'" & Me!MOMethodofEntry.ItemData(varItem) & "'"

下一个变量

如果 Len(strCriteria2) = 0 那么

MsgBox "You did not select anything in the Type field." _

    , vbExclamation, "Nothing to find!"

Exit Sub

如果

结束
strCriteria2 = Right(strCriteria2, Len(strCriteria2) - 1)

strSQL = "SELECT * from TblDataEntry" & _

"WHERE TblDataEntry.District IN(" & strCriteria & ") AND TblDataEntry.MOPointofEntry IN(" & strCriteria1 & ") AND TblDataEntry.MOMethodofEntry IN(" & strCriteria2 & ");"

qdf.SQL = strSQL

DoCmd.OpenQuery "qryMultiselect"

multi select 列表框不适合作为查询条件的来源。这是一个您可以查找并查看其他 Q/A 的主题,了解尝试使用它们的原因和复杂性。

如果可能,建议更改为多个单个列表框。

另一种方法是在多列表记录的table中添加一个复选框字段。然后使用复选框设置子表单作为标记多条记录的方法。