首页 > 解决方案 > MS Access:使用 VBA 使用多选列表框更改查询

问题描述

我正在尝试根据多选列表框的选择进行更改的查询。

我的代码适用于 1 个项目,但如果您尝试选择多个项目,它就无法正常工作。

Private Sub Toggle7_Click()

Dim strSQL As String
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Set db = Application.CurrentDb
Set qdf = db.QueryDefs("SSSBasic")
Dim Criteria1 As String

Dim strList As String
Dim FstrList As String
Dim varSelected As Variant

'Criteria1 = Me.List_Group

Dim ctl As Control

Set ctl = Me!List_Group
  If ctl.ItemsSelected.Count = 0 Then
    MsgBox "You haven't selected anything"
  Else
    For Each varSelected In ctl.ItemsSelected
      strList = strList & ctl.ItemData(varSelected) & " Or "
    Next varSelected
    FstrList = Left$(strList, Len(strList) - 4)
    'MsgBox "You selected the following items:" & vbCrLf & FstrList
  End If


strSQL = "SELECT * FROM SSSTable WHERE (SSSTable.Group = """ & FstrList & """)"

qdf.SQL = strSQL

DoCmd.OpenQuery "SSSBasic"

End Sub

当我从列表框中选择 Proc 和 Non-Proc 时,代码将运行,但我得到零记录。这就是 SQL 的样子:

SELECT *
FROM SSSTable
WHERE (((SSSTable.Group)="Proc Or Non-Proc"));

我无法弄清楚如何让它工作......

谢谢您的帮助!

标签: databasevbams-access

解决方案


推荐阅读