Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1540to1544
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

per ADO auf Oracle-DB schreiben

per ADO auf Oracle-DB schreiben
22.02.2017 12:47:55
Joachim
Hallo,
ich will Datensätze in einer Oracle-DB per VBA aktualisieren. Früher hatte ich das schon mal mit einer MySQL-DB gemacht. Davon hab ich den Code genommen und angepasst, wobei das mit der MySQL-DB auch nicht mehr geht. Vielleicht muss ich noch unter Extras/Verweise was anhaken, bzw. mir wurde ein neuer PC hingestellt, wo evtl. nicht alles nötige installiert wurde.
Hier die Codes:
Private Sub ConnectDB()
Dim oConn As New ADODB.Connection
oConn.Open "DRIVER={Microsoft ODBC for Oracle}; SERVER=10.1.xxx.xxx; DATABASE=aaaa; USER=bbb;  _
PASSWORD=123abc; Option=3"
End Sub
Private Sub schreiben()
Dim rs As New ADODB.Connection
Dim strSQL As String
Dim fdh As String
Dim wst As Integer
Dim est As Integer
fdh = Sheets("Import").Range("A2").Value
wst = Sheets("Import").Range("E2").Value
est = Sheets("Import").Range("F2").Value
ConnectDB
strSQL = "UPDATE liegenschaften SET wetterstation_nr = " & wst & ", ersatzstation = " & est & "  _
_
WHERE liegenschaft_nr = " & fdh & " "
rs.Open strSQL, oConn
End Sub

Es kommt der Laufzeitfehler -2147467259 (80004005) Automatisierungsfehler, Unbekannter Fehler (bei beiden Subs)
Woran könnte das liegen?
Gruß
Joachim

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: per ADO auf Oracle-DB schreiben
22.02.2017 13:08:23
JoWE
Hallo,
der Verweis "Microsoft ActiveX Data Object 6.0 Library" muss aktiviert sein
Gruß
Jochen
AW: per ADO auf Oracle-DB schreiben
22.02.2017 13:16:24
Joachim
Hallo Jochen
der Verweis "Microsoft ActiveX Data Objects 6.1 Library" ist aktiviert
Gruß
Joachim
AW: vielleicht mit Version 2.8 ...
22.02.2017 14:07:06
JoWE
Version 2.8 ... hilft nix
22.02.2017 14:23:09
Joachim
owt
Schmeisse die MS-ODBCfor Oracle in die Tonne
22.02.2017 14:30:38
EtoPHG
Joachim,
Installiere die von Oracle zur Verfügung gestellten Driver. Die von MS funktionieren nicht mehr.
Gruess Hansueli
das hilft etz auch nicht weiter
22.02.2017 16:09:38
Joachim
owT
wie bitte?
22.02.2017 17:41:41
EtoPHG
Hallo Joachim,
Warum nicht? Die Microsoft ODBC Driver für Oracle sind nicht mehr funktionsfähig.
Wenn du auf eine oracle-DB zugreifen willst, musst du die oracle-ODBC-Driver installieren.
Oder glaubst du, wir können dir via Forum etwas liefern, dass das macht? Es hängt zuerst an den Driver und zuletzt am Code!
Gruess Hansueli
Anzeige
...vielleicht hilft ein Beispiel,
23.02.2017 08:20:44
EtoPHG
Joachim,
Als (anonymisiertes) Beispiel eine (funktionierende) Verbindung zu einer oracle-DB auf einer ausfallsicheren Umgebung. Falls nur 1 DB zur Verfügung steht, die Failover,Loadbalance und Host2... Settings weglassen:
Option Explicit
Sub BeispielOracleConnect()
' Microsoft ActiveX Data Object 2.n Library must be referenced
Dim conDB As ADODB.Connection           ' Connection Object
Dim rsRows As ADODB.Recordset           ' DB Recordset
Dim strConnect As String                ' Connect-String
' Build the Connect-String (The oracle-OLE-Driver must be installed!)
'  _
http://www.oracle.com/technetwork/topics/dotnet/downloads/net-downloads-160392.html
strConnect = "Provider=OraOLEDB.Oracle" & _
";Data Source=" & "(DESCRIPTION=(ADDRESS_LIST=(FAILOVER=ON)" & _
"(LOAD_BALANCE=OFF)(ADDRESS=(PROTOCOL=TCP)" & _
"(HOST=myhost1.name.or.ip-address)(PORT=1234))" & _
"(ADDRESS=(PROTOCOL=TCP)" & _
"(HOST=myhost2.name.or.ip-address)(PORT=1234)))" & _
"(CONNECT_DATA=(SERVICE_NAME=my-service-name)))" & _
";User Id=" & "myUserId" & _
";Password=" & "myPassword"
' Make the Connection
Set conDB = New ADODB.Connection        ' New Instance of Connection
conDB.ConnectionString = strConnect     ' Set the ConnectionString in Object
conDB.Open strConnect                   ' Connect to the Database
' Open Recordset and execute SQL
Set rsRows = New ADODB.Recordset        ' New Instance of Recordset
rsRows.CursorLocation = adUseClient     ' Set the CursorLocation-Attribute
rsRows.Open "SELECT * FROM myTable", conDB, adOpenStatic ' Select to DB
'....processing recordset
End Sub

Gruess Hansueli
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige