VBA记录集/Oracle和Excel连接
我已在vba语句中安装了TRYSES记录集。 不幸的是,他只访问我数据库中的第一行。谁能帮我? 我的VBA不是很好,这是我的第一个项目。我希望有人能帮我写代码。多谢各位VBA记录集/Oracle和Excel连接,oracle,vba,excel,recordset,Oracle,Vba,Excel,Recordset,我已在vba语句中安装了TRYSES记录集。 不幸的是,他只访问我数据库中的第一行。谁能帮我? 我的VBA不是很好,这是我的第一个项目。我希望有人能帮我写代码。多谢各位 Sub Testbox() Dim conn, Rs Dim strSQL As String Dim auswahl As Integer auswahl = MsgBox("Die Daten werden geladen", vbOKCancel, "Bitte auswählen") If auswahl = 1
Sub Testbox()
Dim conn, Rs
Dim strSQL As String
Dim auswahl As Integer
auswahl = MsgBox("Die Daten werden geladen", vbOKCancel, "Bitte auswählen")
If auswahl = 1 Then
connstring = "UID=user;PWD=passwort;DRIVER={Microsoft ODBC For Oracle};SERVER=server.WORLD;"
Set conn = New ADODB.Connection
With conn
.ConnectionString = connstring
.CursorLocation = adUseClient
.Mode = adModeRead
.Open
End With
Set Rs = CreateObject("ADODB.Recordset")
strSQL = "select * from table where logdatum =1507"
Rs.Open strSQL, conn, 3, 3
Range("A2:A5000") = Rs("scanclient")
Range("B2:B500") = Rs("Sum")
Range("C2:C500") = Rs("batchclass")
Rs.Close
Set Rs = Nothing
conn.Close
Set conn = Nothing
Else
Exit Sub
End If
End Sub
不幸的是,不可能像这样将数据从记录集中打印到工作表中:
Range("A2:A5000") = Rs("scanclient")
Range("B2:B500") = Rs("Sum")
Range("C2:C500") = Rs("batchclass")
您需要将此代码替换为以下代码:
Dim i As Long: i = 1
Do Until Rs.EOF
i = i + 1
Cells(i, 1) = Rs("scanclient")
Cells(i, 2) = Rs("Sum")
Cells(i, 3) = Rs("batchclass")
Call Rs.MoveNext
Loop