VBA中使用ADO,引數化查詢出現 Automation error
阿新 • • 發佈:2019-02-10
最近初次嘗試在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物件可以新增很多很多引數,但是不知道對於引數的個數還有這種限制,要是哪位能找到相關的文件還麻煩告訴我一下啊——最好是微軟官方的——在這裡先謝謝了!