Я довольно новичок в 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