2014-11-03 5 views
0

Использование Excel VBA Я пытаюсь выполнить parametised запрос с использованием ADO с Access 2007.Тип доступа Да/Нет Поле данных Несовпадение с Логическое значение

поле в Access определяется как Yes/No и параметров, указанных в ниже:

If UF_Main.obCRTN.Value Then 
    .Parameters.Append .CreateParameter("p18", adBoolean, adParamInput, , False) 
Else 
    .Parameters.Append .CreateParameter("p18", adBoolean, adParamInput, , True) 
End If 

Обратите внимание, что управление obCRTN является OptionButton и если оператор работает правильно.

При попытке выполнить запрос, однако, возникает ошибка Data type mismatch in criteria expression.. При удалении вышеуказанных параметров из запроса и кода запрос выполняется отлично.

Согласно documentation for ADO on W3Schools, DataType Enum для Yes/No в Access должно быть adBoolean.

Может ли кто-нибудь помочь в устранении этой ошибки?

+0

Вы уверены, что у вас есть параметры в правильном порядке? Неважно, как вы их называете, параметры должны быть в том порядке, в котором они появляются в запросе. – Fionnuala

+0

@Fionnuala Да, определенно в правильном порядке. – Gareth

ответ

1

По какой-то причине мне пришлось выполнить запрос непосредственно в Access (что вызвало странный результат и фактически не добавило запись).

Я попробовал снова прямо в Access и запрос работал. Затем я попробовал макрос в VBA, и он не сработал.

Странная

Смежные вопросы