Abfrage durch vba von Oracle-DB, Fehlermeldung
Hallo zusammen,
ich versuche mit Excel-vba eine Abfrage von einer Oracle-Datenbank durchzuführen. Der Code läuft durch bis zum Öffnen des recordsets, dann kommt die Fehlermeldung "Laufzeitfehler -2147467259 (80004005) unbekannter Fehler"
Verweise habe ich auf Microsoft ActiveX Data Objects 6.1 Library, Microsoft ActiveX Data Objects Recordset 6.0 Library und Microsoft ADO Ext. 6.0 for DDL and Security (die letzten beiden habe ich so nach und nach dazu als es nicht lief, was aber auch nichts gebracht hat. Ich habe auch schon 2.5 und 2.6 ausprobiert, ohne Wirkung)
Ich habe Excel 2010, auf die Oracle-DB habe ich Leserechte, welche Oracle-Version weiß ich nicht.
Kann von euch jemand meinen Fehler entdecken?
Hier mein Code:
Option Explicit
Dim dbCon As New ADODB.Connection
Dim strConn As String
Dim rs As New ADODB.Recordset
Dim sSql As String
Sub Verbinden()
strConn = "Driver={Microsoft ODBC for Oracle};"
strConn = strConn & "Server=;"
strConn = strConn & "UID=;"
strConn = strConn & "Pwd=;"
With dbCon
.ConnectionString = strConn
.Mode = adModeRead
.CursorLocation = adUseClient
End With
If dbCon.State = 0 Then dbCon.Open ' hier steht die Verbindung (state=1)
End Sub
Sub VerbindungBeenden()
If rs.State = 1 Then
rs.Close
Set rs = Nothing
End If
If dbCon.State = 1 Then dbCon.Close
Set dbCon = Nothing
End Sub
Sub Datenholen()
Dim iCol As Integer
On Error GoTo errorhandler
Range("A1").Select
sSql = "SELECT MVOLLTEXT,CLANDKZ,LMERKBLA,LMERKBLB,LMERKBLC,LMERKBLD,LMERKBLOHN FROM TMS_USER.TMS100KUNDE"
Set rs = New ADODB.Recordset
Verbinden
rs.Open sSql, dbCon, adOpenKeyset, adLockReadOnly ' hier kommt die Fehlermeldung
While Not rs.EOF
For iCol = 0 To rs.Fields.Count
ActiveCell.Value = rs.Fields(iCol).Value
ActiveCell.Offset(0, 1).Select
Next iCol
ActiveCell.Offset(1, (rs.Fields.Count + 1) * -1).Select
rs.MoveNext
Wend
VerbindungBeenden
Exit Sub
errorhandler:
Dim e
e = MsgBox(Error, vbOKOnly)
VerbindungBeenden
End Sub
Im Oracle SQL Developer funktioniert der SQL-Code (über copy and paste eingefügt).
ich versuche mit Excel-vba eine Abfrage von einer Oracle-Datenbank durchzuführen. Der Code läuft durch bis zum Öffnen des recordsets, dann kommt die Fehlermeldung "Laufzeitfehler -2147467259 (80004005) unbekannter Fehler"
Verweise habe ich auf Microsoft ActiveX Data Objects 6.1 Library, Microsoft ActiveX Data Objects Recordset 6.0 Library und Microsoft ADO Ext. 6.0 for DDL and Security (die letzten beiden habe ich so nach und nach dazu als es nicht lief, was aber auch nichts gebracht hat. Ich habe auch schon 2.5 und 2.6 ausprobiert, ohne Wirkung)
Ich habe Excel 2010, auf die Oracle-DB habe ich Leserechte, welche Oracle-Version weiß ich nicht.
Kann von euch jemand meinen Fehler entdecken?
Hier mein Code:
Option Explicit
Dim dbCon As New ADODB.Connection
Dim strConn As String
Dim rs As New ADODB.Recordset
Dim sSql As String
Sub Verbinden()
strConn = "Driver={Microsoft ODBC for Oracle};"
strConn = strConn & "Server=;"
strConn = strConn & "UID=;"
strConn = strConn & "Pwd=;"
With dbCon
.ConnectionString = strConn
.Mode = adModeRead
.CursorLocation = adUseClient
End With
If dbCon.State = 0 Then dbCon.Open ' hier steht die Verbindung (state=1)
End Sub
Sub VerbindungBeenden()
If rs.State = 1 Then
rs.Close
Set rs = Nothing
End If
If dbCon.State = 1 Then dbCon.Close
Set dbCon = Nothing
End Sub
Sub Datenholen()
Dim iCol As Integer
On Error GoTo errorhandler
Range("A1").Select
sSql = "SELECT MVOLLTEXT,CLANDKZ,LMERKBLA,LMERKBLB,LMERKBLC,LMERKBLD,LMERKBLOHN FROM TMS_USER.TMS100KUNDE"
Set rs = New ADODB.Recordset
Verbinden
rs.Open sSql, dbCon, adOpenKeyset, adLockReadOnly ' hier kommt die Fehlermeldung
While Not rs.EOF
For iCol = 0 To rs.Fields.Count
ActiveCell.Value = rs.Fields(iCol).Value
ActiveCell.Offset(0, 1).Select
Next iCol
ActiveCell.Offset(1, (rs.Fields.Count + 1) * -1).Select
rs.MoveNext
Wend
VerbindungBeenden
Exit Sub
errorhandler:
Dim e
e = MsgBox(Error, vbOKOnly)
VerbindungBeenden
End Sub
Im Oracle SQL Developer funktioniert der SQL-Code (über copy and paste eingefügt).
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 283670
Url: https://administrator.de/forum/abfrage-durch-vba-von-oracle-db-fehlermeldung-283670.html
Ausgedruckt am: 07.05.2025 um 05:05 Uhr