У меня есть список выбора нескольких элементов, который я пытаюсь использовать в качестве критерия в запросе.Я в порядке до строки кода "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