使用访问VBA在SQL语句的WHERE子句中使用数组

vuy*_*182 2 vba access-vba

我有一个数组ListBoxContents(),它将包含像'15','16','25'......最多10项的项目.我正在尝试检索Bnumber列中的数据,其中长度> 6的数据以及('15','16','25'...)开头,即列表框中指定的那些项目.并尝试查询这些列表框项目在哪里cql语句的cluase

表列Bnumber包含

 Bnumber
152
156
1523
16417
AA454
CC654
18A16
1826
18A16
25A76
54A16
54235A68
Run Code Online (Sandbox Code Playgroud)

我的VBA代码

Private Sub arraywhere()
Dim qry As String 
Dim Size As Integer
Size = Form_Input_From.lstdigits.ListCount - 1
ReDim ListBoxContents(0 To Size) As String
ReDim LContents(0 To 30) As String       
Dim m As Integer    
For m = 0 To Size
    ListBoxContents(m) = Form_Input_From.lstdigits.ItemData(m)
Next m  


For m = 0 To Size
     qry = "SELECT col1,col2,Bnumber " & _
    "FROM table WHERE (Len([table].[Bnumber]))>6) AND (Left
     ([table].[Bnumber],2))=(" & ListBoxContents(m) & ");"
Next m   

Debug.Print qry    

Application.CurrentDb.QueryDefs("[arrayqry]").sql = qry
DoCmd.OpenQuery "[arrayqry]"

End Sub
Run Code Online (Sandbox Code Playgroud)

但我的WHERE子句只读取最后一个数组项.我如何在where子句中指定数组?

Tim*_*ams 5

尝试类似的东西

" ...  ([table].[Bnumber],2)) in ('" & Join(ListBoxContents,"','") & "');"
Run Code Online (Sandbox Code Playgroud)