Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 使用Microsoft Access列表框进行多选_Vba_List_Ms Access_Filter - Fatal编程技术网

Vba 使用Microsoft Access列表框进行多选

Vba 使用Microsoft Access列表框进行多选,vba,list,ms-access,filter,Vba,List,Ms Access,Filter,我正在尝试使用列表框过滤拆分表单,但我一直收到错误“3075” 我使用了调试工具,得到了: strearch=“52185A,515674B” Task=“从tOrder中选择*,其中((52185A,515674B)中的[OrderID]) 我很确定我遗漏了一些引文,但我似乎不知道在哪里。它们都是短文本格式 Option Compare Database Private Sub cmdSearch_Click() Dim varltem As Variant Dim strSearch

我正在尝试使用列表框过滤拆分表单,但我一直收到错误“3075”

我使用了调试工具,得到了:

strearch=“52185A,515674B”

Task=“从tOrder中选择*,其中((52185A,515674B)中的[OrderID])

我很确定我遗漏了一些引文,但我似乎不知道在哪里。它们都是短文本格式

Option Compare Database

Private Sub cmdSearch_Click() 
Dim varltem As Variant 
Dim strSearch  As String 
Dim Task As String

For Each varltem In Me!LstMatricule.ItemsSelected 
   strSearch = strSearch & "," & Me!LstMatricule.ItemData(varltem) 
Next varltem
If Len(strSearch) = 0 Then 
   Task = "select * from tOrder" 
Else 
   strSearch = Right(strSearch, Len(strSearch) - 1) 
   Task = "select * from tOrder where ((OrderID] in (" & strSearch & "))" 
End If 
DoCmd.ApplyFilter Task 

End Sub 
这很难看到,但基本上我在每个变量周围添加了单引号。您希望结果如下所示:

strSearch = "'52185A', '515674B'"
我个人会这样做:

strSearch = strSearch & IIf(Len(strSearch) = 0, "", ",") & "'" & Me!LstMatricule.ItemData(varltem) & "'"
如果要添加的ID超过2-3个,那么计算成本会稍微高一些,但要比以后在开始时删除起始逗号更干净

strSearch = strSearch & IIf(Len(strSearch) = 0, "", ",") & "'" & Me!LstMatricule.ItemData(varltem) & "'"