Запрос к списку с несколькими выборками

#vba #ms-access

#vba #ms-access

Вопрос:

У меня есть форма, через которую я хочу выполнить запрос, используя поле со списком множественного выбора. Я думаю, что у меня это может быть, но раздел SQL — это то, что вызывает у меня проблемы. Таблица — это «SupervisorsQuery», Запрос — это «Query1», Поле списка — это «lstUser», Запрос выполняется через событие нажатия кнопки. Ошибка, похоже, начинается с инструкции FROM . Любая помощь была бы отличной!!

 Private Sub Command6_Click()
Dim Q As QueryDef, DB As Database
Dim Criteria As String
Dim ctl As Control
Dim itm As Variant

Set ctl = Me![lstUser]
For Each itm In ctl.ItemsSelected
    If Len(Criteria) = 0 Then
        Criteria = Chr(34) amp; ctl.ItemData(itm) amp; Chr(34)
    Else
        Criteria = Criteria amp; "," amp; Chr(34) amp; ctl.ItemData(itm) amp; Chr(34)
    End If
Next itm
If Len(Criteria) = 0 Then
    itm = MsgBox("You must select one or more items in the list box")
    Exit Sub
End If

Set DB = CurrentDb()
Set Q = DB.QueryDefs("Query1")
Q.SQL = "Select SupervisorsQuery.Date, SupervisorsQuery.Client,SupervisorsQuery.[Job Code Description], SupervisorsQuery.[Perf Percent]"
FROM SupervisorsQuery
WHERE ((SupervisorsQuery.[User ID]) In (" amp; Criteria amp; "));"

Q.Close
DoCmd.OpenQuery "Query1"


End Sub
  

Комментарии:

1. Строка SQL в опубликованном коде — это только первая строка. Это опечатка? Вам нужно добавить в строку часть FROM либо путем добавления ее в конце строки.

2. Debug.print ваша инструкция SQL. Вы быстро увидите свою ошибку. Подсказка: MSDN

Ответ №1:

Используйте это:

 Q.SQL = "Select SupervisorsQuery.[Date], SupervisorsQuery.Client,SupervisorsQuery.[Job Code Description], SupervisorsQuery.[Perf Percent] " amp; _
"FROM SupervisorsQuery " amp; _
"WHERE ((SupervisorsQuery.[User ID]) In (" amp; Criteria amp; "));"
  

Комментарии:

1. Спасибо вам миллион раз. Это сработало отлично.