1. 程式人生 > >VBA中使用ADO,引數化查詢出現 Automation error

VBA中使用ADO,引數化查詢出現 Automation error

最近初次嘗試在VBA中使用ADO物件進行引數化查詢,一直出現Automation error,網上總是找不到對應的解決辦法,經過反覆嘗試,終於搞清楚了。

假設cmd是ADODB.command 物件,其設定過程省略,要點集中在CommandText屬性和Parameters集合

‘程式碼開始

Dim  cmd as NewADODB.Command

Dim rst as ADODB.recordset

‘設定過程省略

‘新增兩個引數

cmd.Parameters.Append cmd.CreateParameter(, adVarChar, ,Len(objT.BL), objT.BL)

cmd.Parameters.Append cmd.CreateParameter(, adChar, ,Len(objT.LLP), objT.LLP)

cmd.CommandText = "select BLNO from dbo.TSP whereBLNO=?" ‘SQL語句只用了一個引數

‘此時如果執行,必定跳出Automation error

Set rst = cmd.Execute()

‘程式碼結束

我想原因在於——cmd添加了2個引數,但是在SQL語句只用了一個引數,實際使用的引數個數與所新增的引數個數不一致。把引數去掉一個,順利執行!

只知道ADODB.COMMAND物件可以新增很多很多引數,但是不知道對於引數的個數還有這種限制,要是哪位能找到相關的文件還麻煩告訴我一下啊——最好是微軟官方的——在這裡先謝謝了!