Синтаксическая ошибка при использовании значения Combobox для фильтрации запроса в VBA - PullRequest
0 голосов
/ 13 марта 2019

Добрый день. Я не разработчик, и я не самый острый инструмент в сарае для загрузки, но это простая проблема, с которой я боролся в течение непомерного количества времени, и я надеюсь, что кто-то там в эфире будет будь любезен, чтобы помочь с черным делом. Я просмотрел ответы и форумы, но не могу найти решение.

У меня есть 3 комбинированных списка в форме доступа, которые вместе фильтруют запрос [Счета] до одной записи. У меня есть фрагмент VBA, который я показываю ниже, в котором я пытаюсь выполнить SQL-запрос, чтобы вернуть одну запись в набор записей, используя значения комбинированных списков, которые я выбрал в качестве фильтров в предложении WHERE. Я просто добавлю оскорбительный кусок:

JIstat = Forms!Invoices!Combo58.Value
Cname = Forms!Invoices!Combo50.Value
JID = Forms!Invoices!Combo56.Value


Set rs = db.OpenRecordset("SELECT [Invoice Number] FROM Invoices " & _
"WHERE [Job Invoiced?] = '" & JIstat & "'" & _
"AND [Client Name] = '" & Cname & "'" & _
"AND [Job ID] =" & JID)

JIstat - это переменная, которая предоставляет значение состояния (текст); Cname предоставляет имя клиента (текст), а JID предоставляет идентификатор задания (номер).

Это кажется достаточно простым, но когда я его запускаю, я получаю ошибку 3061 Runtime, слишком мало ожидаемых параметров. 3. 3 переменным успешно присвоены правильные значения, но я подозреваю, что форматирование и синтаксис - это моя отмена. У меня не так много волос, чтобы терять, поэтому любая помощь будет оценена. Спасибо

1 Ответ

0 голосов
/ 13 марта 2019

Добавлен пробел в новой строке оператора SQL.

JIstat = Forms!Invoices!Combo58.Value
Cname = Forms!Invoices!Combo50.Value
JID = Forms!Invoices!Combo56.Value


Set rs = db.OpenRecordset("SELECT [Invoice Number] FROM Invoices " & _
"WHERE [Job Invoiced?] = '" & JIstat & "'" & _
" AND [Client Name] = '" & Cname & "'" & _
" AND [Job ID] =" & JID)
...