2014-11-03 45 views
0

使用Excel VBA,我试图与Access 2007访问是/否字段的数据类型不匹配与布尔值

在接入领域被定义为Yes/No执行使用ADO一个parametised查询,并指定为参数如下:

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

注意,控制obCRTNOptionButton和if语句正常工作。

当我尝试执行查询但是,会引发Data type mismatch in criteria expression.错误。从查询和代码中删除上述参数时,查询执行正常。

根据documentation for ADO on W3Schools,DataType Enum对于Yes/No在Access中应为adBoolean

任何人都可以帮助为什么这个错误被抛出?

+0

你确定你有正确顺序的参数?不管你称之为什么,参数必须按照它们在查询中出现的顺序排列。 – Fionnuala 2014-11-03 14:46:41

+0

@Fionnuala绝对是正确的顺序。 – Gareth 2014-11-03 14:49:56

回答

1

出于某种原因,我不得不直接在Access中执行查询(这产生了一个奇怪的结果,并没有实际添加记录)。

我直接在Access中尝试,查询工作。然后,我尝试从VBA中的宏,并没有执行任何问题。

奇怪

相关问题