I am having trouble passing parameters via excel vba to a stored proceudure in MS SQL server 2005.
The code is as follows: -
Sub Get_RowData(TeamName As String, sheetname As String, rownum As Integer)
Dim SQLcmd As String
Dim fromDate As String
Dim toDate As String
Dim strTeam As String
Dim rsCommand As New ADODB.Command
Dim prm As ADODB.Parameter
Dim strConn As String
dbase = "FootballResults"
Set cnDBase = New ADODB.Connection
strConn = "Provider=SQLNCLI;Server=LAPTOP\SQLEXPRESS;Database=" & dbase & "; Trusted_Connection=yes;"
'Now open the connection.
cnDBase.Open strConn
' Create a recordset object.
Set rsDBase = New ADODB.Recordset
Sheets(sheetname).Range("C3").Offset(rownum, 0) = Sheets(sheetname).Range("C30").Offset(rownum, 0)
strTeam = TeamName
fromDate = Format(Sheets("General").Range("FromDate").Value, "yyyy/mm/dd")
toDate = Format(Sheets("General").Range("ToDate").Value, "yyyy/mm/dd")
Set rsCommand = New ADODB.Command
SQLcmd = "sp_CalcTable"
With rsCommand
.CommandType = adCmdStoredProc
.ActiveConnection = cnDBase
.CommandText = SQLcmd
rsCommand.Parameters("@teamname").Value = TeamName
rsCommand.Parameters("@fromDate").Value = fromDate
rsCommand.Parameters("@toDate").Value = toDate
End With
Set rsDBase = cnDBase.Execute(SQLcmd)
Sheets(sheetname).Range("D3").Offset(rownum, 0).CopyFromRecordset rsDBase
Call Close_Connection
End Sub
I get an error message 'Procedure or function expects parameter "@teamname", which was not suppled'.
I would appreciate any help.
The code is as follows: -
Sub Get_RowData(TeamName As String, sheetname As String, rownum As Integer)
Dim SQLcmd As String
Dim fromDate As String
Dim toDate As String
Dim strTeam As String
Dim rsCommand As New ADODB.Command
Dim prm As ADODB.Parameter
Dim strConn As String
dbase = "FootballResults"
Set cnDBase = New ADODB.Connection
strConn = "Provider=SQLNCLI;Server=LAPTOP\SQLEXPRESS;Database=" & dbase & "; Trusted_Connection=yes;"
'Now open the connection.
cnDBase.Open strConn
' Create a recordset object.
Set rsDBase = New ADODB.Recordset
Sheets(sheetname).Range("C3").Offset(rownum, 0) = Sheets(sheetname).Range("C30").Offset(rownum, 0)
strTeam = TeamName
fromDate = Format(Sheets("General").Range("FromDate").Value, "yyyy/mm/dd")
toDate = Format(Sheets("General").Range("ToDate").Value, "yyyy/mm/dd")
Set rsCommand = New ADODB.Command
SQLcmd = "sp_CalcTable"
With rsCommand
.CommandType = adCmdStoredProc
.ActiveConnection = cnDBase
.CommandText = SQLcmd
rsCommand.Parameters("@teamname").Value = TeamName
rsCommand.Parameters("@fromDate").Value = fromDate
rsCommand.Parameters("@toDate").Value = toDate
End With
Set rsDBase = cnDBase.Execute(SQLcmd)
Sheets(sheetname).Range("D3").Offset(rownum, 0).CopyFromRecordset rsDBase
Call Close_Connection
End Sub
I get an error message 'Procedure or function expects parameter "@teamname", which was not suppled'.
I would appreciate any help.