【发布时间】:2018-01-08 06:13:57
【问题描述】:
这是我的第一篇文章,如果我还没有达到所有惯例,请原谅我。
问题如下,我刚开始创建MS Access数据库,我已经很擅长了,我刚刚完成了一个完整的项目,我目前正在创建报告,我正在尝试创建一个带有选项卡控件的过滤器表单,在每个页面上都有一个多选列表框,该列表框预先填充了表格中的数据,我无法使用按钮或类似内容创建过滤器,因为我希望它是动态的,过滤器必须支持多个条件,我正在尝试使用我的代码的结果在查询中使用列表框的选择结果,我创建了一个用逗号分隔的数字字符串(我没有引用这些数字,因为我将它们与数字字段进行比较) .我循环遍历列表框中的所有选定项目,并将它们相互添加,用逗号分隔
lstSel = lstSel & listbox.itemdata(index) &","
然后我使用
截断最后的逗号lstSel = left(lstSel,Len(lstSel)-1)
然后我将值传递到表单上的文本框中,我试图在查询中使用 where [ID] in(Forms!myForm!myTxtbxResult)
我没有收到任何错误,我重新查询控件和报告但无济于事
【问题讨论】:
-
看看 Allen Browne 提供的这个提示,绕过任何查询需求:Use a multi-select list box to filter a report
-
它不起作用,因为 Access 将文本框内容视为字符串,而不是一组离散元素。 @Rene 引用的 Allen Browne 文章中显示的方法实际上是动态构建和使用 SQL IN 运算符的唯一方法。代替动态参数化查询,设置 DoCmd.OpenReport 方法的 WHERE CONDITION 参数。
-
感谢您的回答!我还没有机会尝试...但是感谢您给我指导!
标签: ms-access file-access