首页 > 解决方案 > 在运行 SQL 存储过程时将 varchar 转换为 VBA 中的日期

问题描述

我有如下的 VBA 脚本来提取 SQL(存储过程)并提取到 Excel。我允许 Excel 单元格“B1”输入日期,但我面临错误消息

将 varchar 转换为日期时间时出错

我试图将 Excel 列“B1”更改为日期格式,但错误仍然存​​在。请帮忙。谢谢

Sub puldata()
    Dim oConn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim fld As ADODB.Field
    Dim mssql As String
    Dim row As Integer
    Dim col As Integer
    Dim DateTo As Date
    Dim ws As ThisWorkbook
    Set ws = ThisWorkbook
    Application.ScreenUpdating = False
    Set oConn = New ADODB.Connection
    Set rs = New ADODB.Recordset

    'oConn.Parameters.Append oConn.CreateParameter("DateTo", adDate, adParamInput, 10, Range("D1").Text)

    mssql = "exec dbo.HP_Receivable @DateTo = '" & Cells(1, 2) & "';"

    oConn.ConnectionString = "Driver={SQL Server Native Client 11.0}; Server=10.88.71.32; Database=HCMY; UID=sa; PWD=Hcmy@sap"

    'oConn.ConnectionTimeout = 30
    oConn.Open

    rs.Open mssql, oConn

    If rs.EOF Then
        MsgBox "No Matching recrods found"
        rs.Close
        oConn.Close
        Exit Sub
    End If

    row = 3
    col = 1

    For Each fld In rs.Fields
        Sheet1.Cells(row, col).Value = fld.Name
        col = col + 1
    Next

    rs.MoveFirst
    row = row + 1

    Do While Not rs.EOF
        col = 1

        For Each fld In rs.Fields
            Sheet1.Cells(row, col).Value = fld
            col = col + 1
        Next

        row = row + 1
        rs.MoveNext
    Loop

    rs.Close
    oConn.Close
End Sub

标签: sqlsql-servervba

解决方案


推荐阅读