1
我正在使用Excel 2007和SQL Server 2008 R2 Express。從Excel事件調用參數的SQL Server存儲過程
我想從VBA中的Excel事件Worksheet.Change
調用我的SQL Server存儲過程。我有一張表,我用3個參數調用存儲過程。
在調用這個存儲過程我得到錯誤:
運行時錯誤 '-2147217900(80040E14)'
語法錯誤或訪問衝突
我Excel中的腳本代碼,以便遠:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$4" Then
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
Dim cmd As ADODB.Command
Set cmd = New ADODB.Command
conn.ConnectionString = "Provider='SQLOLEDB'; " & _
"Data Source=compname\sqlservername; " & _
"Initial Catalog=databasename; " & _
"User Id= sa; " & _
"Password=****"
conn.Open
cmd.ActiveConnection = conn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "Test1 @zmienna1= " & CStr(Range("D4").Value) & _
" @zmienna2= " & CStr(Range("D4").Value) & _
" @zmienna3= " & CStr(Range("D4").Value)
cmd.Execute 'error
conn.Close
Set conn = Nothing
Set cmd = Nothing
End If
End Sub
我就cmd.Execute
行收到錯誤,當我改變D4細胞。
我錯過了什麼?當我使用具有參數的存儲過程時,是否必須使用ADODB.Command
對象的Parameters
集合?
如果是 - 任何人都可以提供代碼示例?任何人都可以幫忙嗎?謝謝!