我正在尝试将SQL Server存储过程的结果粘贴到名为 Testing 的工作表中,但它不会复制存储过程的结果。存储过程应从名为 Rater 的工作表中选取日期,并根据日期执行SP,然后将结果表复制到名为 Testing 的工作表。
任何帮助将不胜感激。提前谢谢!
Sub NewCADRate()
Dim ws1 As Worksheet
Dim cmd As ADODB.Command
Dim rst As ADODB.Recordset
Dim iCols As Integer
'Set ws1 = ThisWorkbook.Worksheets("Rater")
'Opens the Results tab
With Sheets("Testing")
.Visible = True
.Activate
Range("A1").Select
End With
On Error Resume Next
Sheets("Rater").Activate
Dim conn As New ADODB.Connection
conn.Open "Data Source=10.50.32.92; Initial Catalog = Property; Trusted_connection=Yes; Provider=SQLOLEDB;"
Set cmd.ActiveConnection = conn
cmd.CommandText = "Global_CurrencyConverter"
cmd.Parameters.Append cmd.CreateParameter("@PED", adDate, adParamInput, 50, Range("Effectivedate").Value)
cmd.CommandType = adCmdStoredProc
cmd.Execute
'Open Recordset'
Set rst.Source = cmd
rst.Open
For iCols = 0 To rst.Fields.Count - 1
Worksheets("Testing").Cells(1, iCols + 1).Value = rst.Fields(iCols).Name
Next
'Copy Data to Excel'
Worksheets("Testing").Rows("2:" & Rows.Count).ClearContents
Worksheets("Testing").Range("A2").CopyFromRecordset rst
ThisWorkbook.Worksheets("Testing").Cells.EntireColumn.AutoFit
If rst.EOF Then
Exit Sub
End If
End Sub