我仍然无法做到这一点而不会出错。
对于我正在做的项目,我正在使用Microsoft访问权限创建一个数据库,该数据库将根据从多个多选列表框,多个文本框输入的信息来过滤ONE表中的报表数据和一个组合框。
我知道如何对一个“多选”列表框进行操作,但是在添加其他我的多选列表框时遇到了问题。是否可以仅从一个来源完成所有操作,还是我将不得不使用多个表?
如果我能够从一个表(作为源)中执行此操作,我将如何执行该操作并添加文本框和组合框?如有必要,我可以提供我的代码。
https://access-programmers.co.uk/forums/showthread.php?t=286294&page=2
代码:
私人子Command62_Click()
将Dim db作为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) & "'"
下一个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) & "'"
下一个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) & "'"
下一个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”&_
“在哪里TblDataEntry.District IN(”&strCriteria&“)和TblDataEntry.MOPointofEntry IN(”&strCriteria1&“)和TblDataEntry.MOMethodofEntry IN(”&strCriteria2&“);”
qdf.SQL = strSQL
DoCmd.OpenQuery“ qryMultiselect”
答案 0 :(得分:0)
多重选择列表框不适合作为查询条件的来源。这是一个主题,您可以查询其他问题,以了解尝试使用它们的原因和复杂性。
如果可能,建议更改为多个单个列表框。
另一种方法是将复选框字段添加到多列表记录的表中。然后使用复选框作为标记多个记录的方法来设置子表单。