читать SQL и сохранять значение как переменную в Excel VBA. [Ошибка времени выполнения '-2147467259 (80004005)] - PullRequest
0 голосов
/ 29 октября 2018

Я довольно новичок в SQL и кодировании.

Я хочу прочитать данные из SQL и сохранить их как переменную на VBA для обновления ячеек в таблицах Excel, но когда я запускаю VBA, я сталкиваюсь с [Run-time error '-2147467259 (80004005)] из "rst.Open ssql" , cn, adOpenDynamic, adLockPessimistic, adCmdText "

Пожалуйста, просмотрите мои коды ниже. Спасибо!

это таблица sql

Sub sql_po_stackflow()

Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
Dim strConn As String

strConn = "PROVIDER=SQLOLEDB;"
strConn = strConn & "DATA SOURCE=CINDY\MSSQLSERVER01;INITIAL CATALOG=mason01;"
strConn = strConn & "INTEGRATED SECURITY=sspi;"

cn.Open strConn

Dim r, c, endcol As Long
Dim LastRow, LastColumn As Long
Dim loc As Worksheet
Set loc = ThisWorkbook.Sheets("Backend")

With loc
  LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
  LastColumn = .Range("A1").CurrentRegion.Columns.Count
End With

Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
Dim ssql, gd, itn As String


    r = 161
    c = 14
    endcol = 21

    Do While (c < endcol + 1)
        Do While (r < LastRow + 1)


        itn = "XXX-XXX-XXX"
        ssql = "Select PONUMBER from po_east where ITEMNO = " & itn & ""

        rst.Open ssql, cn, adOpenDynamic, adLockPessimistic, adCmdText

        gd = rst!PONUMBER.Value
        rst.Close

        loc.Range(loc.Cells(r, c), loc.Cells(r, c)) = gd

        rst.Close

        r = r + 176

        Loop

    r = 161
    c = c + 1

    Loop

cn.Close

Set rst = Nothing
Set cn = Nothing


End Sub
...