2014-11-03 52 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中的宏,並沒有執行任何問題。

奇怪