2015-05-09 4 views
2

Я получаю сообщение об ошибке во время выполнения: слишком мало параметров: ожидаемый 2.Слишком мало параметров ошибок MS Access SQL

Этот код должен получить следующий работника в очереди заданий. Сотрудники [programs] и [Language] должны соответствовать [program] и [language] в таблице CFRRR.

strSQL = "SELECT TOP 1 WorkerID FROM attendance WHERE [Programs] LIKE '*" & program & "*' AND [Language] = '" & Language & "' AND [Status] = " & ("Available") & " ORDER BY TS ASC" 
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset) 

Вот что Debug.Print strSQL показывает мне:

SELECT TOP 1 WorkerID FROM attendance WHERE [Programs] LIKE '*program*' AND [Language] LIKE '*Language*' AND [Status] = Available ORDER BY TS ASC

+0

Вы пробовали поставить одинарные кавычки вокруг статуса ?: «Доступно» –

+0

Я только что сделал это и получил ту же ошибку, за исключением этого времени, когда он сказал, что ожидается 1, и вот debug.print: 'SELECT TOP 1 WorkerID FROM attendance WHERE [ Программы] LIKE '* program *' AND [Language] LIKE '* Language *' AND [Status] = 'Available' ORDER BY TS ASC' – Lilly

ответ

2

Предполагая, что вы хотите, чтобы соответствовать [Status] слово Доступные, добавить кавычки, как Марк suggested ...

SELECT TOP 1 WorkerID FROM attendance 
WHERE [Programs] LIKE '*program*' AND [Language] LIKE '*Language*' AND [Status] = 'Available' 
ORDER BY TS ASC 

Однако который по-прежнему оставляет один «параметр» неучтенным. Создайте новый запрос в конструкторе запросов Access. Переключитесь на SQL View и вставьте текст вашего заявления.

При попытке выполнить этот запрос Access откроет диалоговое окно ввода, в котором вам будет предложено указать значение для параметра. В этом диалоговом окне также содержится слово, которое Access принимает как параметр.

Сравните это слово с оператором SQL. Это, как правило, имя, функция или ключевое слово SQL с ошибкой (поле или таблица). В этом случае я не могу обнаружить ошибки функции или ключевого слова, поэтому угадайте, что проблема - это имя поля или таблицы.

+0

Это сработало. Я нашел свою ошибку, и это было не то, что я думал, но теперь у меня другая ошибка. Он говорит, что не может найти мою мою ссылочную форму CFRRR, и там определенно есть форма. Должен ли я задать другой вопрос? – Lilly

+0

Хм. * CFRRR * не упоминается в запросе, так что удивил меня. Возможно, вам нужен запрос, который объединяет * посещаемость * и * CFRRR *? Если да, то, думаю, это другой вопрос. – HansUp

+0

Вы правы. Это было по моему другому вопросу. Я просто задам другой вопрос. – Lilly