java 多选列表框_根据表单中的多个列表框过滤查询

我的理解是你有一个带有未绑定的多选列表框的表单,你想在数据表视图中打开一个查询,并根据列表框选择进行查询 .

这意味着您必须检查每个列表框的 ItemsSelected 集合并相应地更新查询的 SQL 属性 .

在我的测试表单上,其中包含一个名为lstFname的多选列表框,在列表框中选择名称Jack,Dave和Tim,然后单击命令按钮(cmdOpenQuery),创建此 SELECT 语句 .

SELECT c.*

FROM Contacts AS c

WHERE c.fname IN ('Dave','Jack','Tim')

然后该语句将保存为名为qrySearchForm的查询的 SQL 属性 . 最后,在数据表视图中打开该查询 .

但是,我的示例只包含一个列表框,并且您有几个列表框 . 因此,您需要做更多的工作来扩展这个简单的示例 .

这是我的表单的代码模块......

Option Compare Database

Option Explicit '

Private Sub cmdOpenQuery_Click()

Const cstrQuery As String = "qrySearchForm"

Dim strNames As String

Dim strSelect As String

Dim varItm As Variant

strSelect = "SELECT c.*" & vbCrLf & "FROM Contacts AS c"

For Each varItm In Me.lstFname.ItemsSelected

strNames = strNames & ",'" & _

Me.lstFname.ItemData(varItm) & "'"

Next varItm

If Len(strNames) > 0 Then

strNames = Mid(strNames, 2) ' discard leading comma

strSelect = strSelect & vbCrLf & _

"WHERE c.fname IN (" & strNames & ")"

End If

Debug.Print strSelect

CurrentDb.QueryDefs(cstrQuery).Sql = strSelect

DoCmd.OpenQuery cstrQuery

End Sub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值