运行时错误'3075':查询表达式中的语法错误

时间:2018-06-14 12:36:12

标签: vba ms-access

我在Access上创建一个表单,根据列名“控件类型”过滤子表单。

我正在使用列表框选择要过滤的多个值。

我还有一个按钮,可以对表单执行过滤。

我写了这段代码:

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

For Each varItem In Me!listControl.ItemsSelected
     strSearch = strSearch & "," & Me!listControl.ItemData(varItem)
Next varItem

If Len(strSearch) = 0 Then
     Task = "select * from tblAB"  
Else
     strSearch = Right(strSearch, Len(strSearch) - 1)
     Task = "select * from tblAB where Control_Type = '" & strSearch & "' "
End If
Me.tblAB_subform.Form.Filter = Task

Me.tblAB_subform.Form.FilterOn = True

End Sub

我收到一行的Run = time错误'3075':

Task = "select * from tblAB where Control_Type = '" & strSearch & "' "

1 个答案:

答案 0 :(得分:2)

运行时错误不得在引用行上。

来自documentation

  

Filter属性是一个由WHERE组成的字符串表达式   没有WHERE关键字的子句。

所以不是一个完整的SELECT句子,只是:

Task = "Control_Type = '" & strSearch & "'"