Ошибка 3131 при попытке запроса в поле списка множественного выбора - PullRequest
0 голосов
/ 01 июня 2018

У меня есть список выбора нескольких элементов, который я пытаюсь использовать в качестве критерия в запросе.Я в порядке до строки кода "qdf.SQL = strSQL", в которой я получаю код ошибки 3131. Если я помещаю окно сообщения сразу после команды "strSQL =", оно, похоже, заполняется правильными данными.

Я вытягиваю из списка категорий в форме (Forms ("frmMain"). ListCat1).

Что я делаю не так?Заранее спасибо.

Private Sub CAT1_Criteria()

Dim varItem As Variant
Dim strCAT1 As String
Dim ctl As Control
Dim strSQL As String

Dim db As Database
Dim qdf As QueryDef

Set ctl = Forms("frmMain").listCat1

For Each varItem In ctl.ItemsSelected
strCAT1 = strCAT1 & ",'" & ctl.ItemData(varItem) _
& "'"
Next varItem

If Len(strCAT1) = 0 Then
strCAT1 = "Like '*'"
Else
strCAT1 = Right(strCAT1, Len(strCAT1) - 1)
strCAT1 = "IN(" & strCAT1 & ")"
End If

strSQL = "SELECT dbo_CATEGORY1.* FROM dbo_CATEGORY1" & _
      "WHERE dbo_CATEGORY1.[LEVEL1] " & strCAT1 & ";"

Set db = CurrentDb
Set qdf = db.QueryDefs("qryCAT1_Sel")
qdf.SQL = strSQL

'Set qdf = Nothing
'Set db = Nothing

DoCmd.OpenQuery "qryCAT1_Sel"

End Sub
...