CopyRecordset不会将结果粘贴到Excel工作表

时间:2017-09-14 15:56:04

标签: sql excel vba

我正在尝试将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

0 个答案:

没有答案