Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1780to1784
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

VBA Verbindung zu Oracle Datenbank

VBA Verbindung zu Oracle Datenbank
17.09.2020 11:20:51
Juu
Hallo zusammen,
ich versuche nun schon seit mehreren Tagen einen VBA Code zu schreiben, der eine Verbindung zu einer Datenbank herstellt aber krieg es einfach nicht zum laufen. Über den SQL Developer, kann ich auf die Datenbank zugreifen.
Der folgende ist mein aktuellster Code, ich habe aber auch schon einige andere ausprobiert:

Sub DB_Connection()
Dim dbConnection As ADODB.Connection
Dim recordSet As ADODB.recordSet
Set dbConnection = New ADODB.Connection
Set recordSet = New ADODB.recordSet
'conString = "Driver={Oracle in OraClient12Home1_32bit};DBQ=345;Uid=Mein Username;Pwd=Mein  _
Passwort;"
conString = "Provider=msdaora;Data Source=MyOracleDB;User Id=Mein Username;Password=Mein  _
Passwort;"
dbConnection.Open (conString)
End Sub

Ich habe sowohl den OraClient12Home1_32bit als auch den Microsoft ODBC for Oracle Treiber heruntergeladen (in der Hoffnung, dass es mit einem von beiden klappt). Die Umgebungsvariablen habe ich nach Anleitung angepasst und die entsprechenden Werte im tnsnames file geändert.
Ich bin mir ehrlich gesagt nicht sicher ob im connection string oben mein Wert für DBQ richtig ist, ich habe dort die SID eingetragen.
Ich erhalte folgende Fehlermeldung mit der ich wenig anfangen kann:
Userbild
Kann mir jemand helfen?
Vielen Dank im Voraus!

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Verbindung zu Oracle Datenbank
17.09.2020 11:58:34
Juu
@Luschi vielen Dank für deine Antworten. Ich kenne beide Seiten aber leider klappt es trotzdem nicht.
AW: VBA Verbindung zu Oracle Datenbank
18.09.2020 08:29:50
Juu
Hat sonst noch jemand eine Idee?
AW: VBA Verbindung zu Oracle Datenbank
21.09.2020 12:57:10
EtoPHG
Hallo Juu,
Seit Jahren benutze ich die Original-Driver von oracle für den Zugriff auf Oracle DB's.
Diese sind verfügbar auf der Seite 32-bit Oracle Data Access Components (ODAC). Mit diesen konnte ich selbst oracle-DB's auf verteilten System und automatischen Failover-DB's erfolgreich abgreifen. ZIP-Datei herunterladen und installieren.
Die Komponenten habe ich auf EXCEL Versionen 2010...365(2019) und oracle DB's V12...V18 ohne Änderungen eingesetzt.
Der Connectstring in VBA lautet dann etwa so (kursive Teile durch deine Angaben ersetzen):
        strConnect = "Provider=OraOLEDB.Oracle" & _
";Data Source=" & "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)" & _
"(HOST=DeinDBHost)(PORT=DeinePortNr))" & _
"(CONNECT_DATA=(SERVICE_NAME=DeinServiceName)))" & _
";User Id=" & "DeineUserId" & _
";Password=" & "DeinPasswort"

Gruess Hansueli
Anzeige
AW: Anmerkung zur Installation der oracle-Driver
21.09.2020 13:17:26
EtoPHG
Hall nochmals,
Ein Nachtrag:
1. Die Datei ODTwithODAC1120320_32bit.zip auf einen lokalen Drive herunterladen
2. Auf dem C:\ODTwithODAC1120320_32bit.zip Entpacken in ein Temp-Verzeichnis
3. im Temp-Verzeichnis Setup.exe aufrufen
4. Installieren von [x] Oracle Data Access Components for Oracle Client 11.2.0.3.20
5. Optimieren über eine benutzerdefinierte Installation nur diese Komponenten installieren
5.1. Oracle Provider for OLE DB 11.2.0.3.0
5.2. Oracle Objects for OLE 11.2.0.3.0
Alle anderen Komponenten sind für den DB-Zugriff aus EXCEL nicht nötig. 

Gruess Hansueli
Anzeige
AW: Anmerkung zur Installation der oracle-Driver
22.09.2020 09:59:52
Juu
Hallo Hansueli,
vielen lieben Dank für deine Hilfe. Das hört sich sehr vielversprechend an und ich werde es gleich ausprobieren.
Viele Grüße
Juu
AW: Anmerkung zur Installation der oracle-Driver
22.09.2020 11:42:00
Juu
Ich habe deine Lösung gerade ausprobiert und bekomme keine Fehlermeldung mehr, wenn ich den Code ausführe. Allerdings schließt sich die VBA Datei wenn ich die Zeile: dbConnection.Open (conString) öffne. Anschließend öffnet sich die VBA Datei sofort wieder. Hast du eine Idee woran das liegen könnte?
AW: Anmerkung zur Installation der oracle-Driver
22.09.2020 11:57:08
EtoPHG
Hallo Juu,
Was genau verstehst du unter einer VBA-Datei? Ich kenne nur Exceldateien, ggf. mit VBA-Code, den man im VBE(ditor) anschauen, modifizieren, debuggen und überwachen kann.
In den Extras des VBE(editors) musst du die Verweise kontrollieren, ob denn auch die Komponenten der installierten oracle Komponenten markiert sind.
Ich kann mir dein beschriebenes Verhalten nicht vorstellen. Markiert der VBEditor beim Kompilieren irgendwelche Fehlermeldungen aus? P.S. als erste Codezeile in jedem Modul:
Option Explicit

Damit forcierst du, dass alle Variablen ausdrücklich definiert werden müssen und verhinderst damit ev. Schreibfehler/Referenzierung in Variablen-Namen.
Wenn du weiterhin Probleme hast, stell wenigstens den gesamten Code zu Analyse ins Forum.
Besser wäre natürlich gleich eine Bespielmappe.
Gruess Hansueli
Anzeige
AW: Anmerkung zur Installation der oracle-Driver
22.09.2020 12:31:44
Juu
Hallo Hansueli,
vielen Dank für deine Hilfe. Mit VBA-Datei meine ich die Excel Datei, in der sich mein Code befindet.
Mein gesamter Code sieht aktuell folgendermaßen aus:
Option Explicit
Sub DB_Connection()
Dim dbConnection As ADODB.Connection
Dim recordSet As ADODB.recordSet
Dim conString As String
Set dbConnection = New ADODB.Connection
Set recordSet = New ADODB.recordSet
conString = "Provider=OraOLEDB.Oracle" & _
";Data Source=" & "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)" & _
"(HOST=MeinHostName(IPAdresse))(PORT=MeinPort))" & _
"(CONNECT_DATA=(SERVICE_NAME=MeinServiceName)))" & _
";User Id=" & "MeinUserName" & _
";Password=" & "MeinPasswort"
dbConnection.Open (conString)
End Sub
Der Code stürzt in der Zeile dbConnection.Open (conString) ab.
Folgende Libraries habe ich ausgewählt (und auch schon einmal entfernt und wieder neu ausgewählt aber das hat das Problem leider nicht behoben)
Userbild
Anzeige
AW: Anmerkung zur Installation der oracle-Driver
22.09.2020 13:55:34
EtoPHG
Hallo,
Es fehlt der Verweis "Microsoft Data Access Components Installed version"
Ob die (IPADRESSE) nötig ist, kann ich nicht beurteilen, eigentlich müsste diese durch den Hostnamen automatisch aufgelöst werden. Ich würde sie ggf. mal weglassen.
Zudem was heisst stürzt ab? Ist es immer noch die gleiche Fehlermeldung wie im ersten Post, oder eine andere ?
Ersetzte dein OPEN Statement mal durch die folgenden Codezeilen:
dbConnection.Connectionstring = conString
dbConnection.Open conString

Gruess Hansueli
AW: Anmerkung zur Installation der oracle-Driver
22.09.2020 14:29:38
Juu
Hallo,
ich habe den Verweis hinzugefügt und die entsprechenden Codezeilen ersetzt. Mit (IP Adresse) habe ich gemeint, dass die IP Adresse der Hostname ist (so wird es mir im SQL Developer, wo ich die Verbindung erfolgreich einrichten konnte, angezeigt).
Wenn ich den Code ausführe schließt sich Excel automatisch und es wird mir keine Fehlermeldung angezeigt.
Ich habe das Gefühl, dass das Problem an der Installation des Treibers liegt, die fand ich nicht ganz eindeutig und ich kann mir gut vorstellen, dass ich da Fehler gemacht habe. Könnte das sein? Ich versuche ihn gerade neu zu installieren.
Den Folgenden Schritt der Installation habe ich beim ersten Mal überlesen. Ich habe aktuell allerdings auch Probleme den Schritt auszuführen, da ich den beschriebenen SQL*Plus Eintrag im Visual Studio nicht finden kann. Ist der Schritt notwendig?
2. Executing the SQL Scripts
As noted during the install, the setup SQL scripts must be executed before
using any of the Oracle Providers for ASP.NET. For details, please see
Chapter 1 of the Oracle Providers for ASP.NET Developer's Guide.
If you don't have SQL*Plus to execute SQL scripts, you may install and use
Oracle Developer Tools (ODT) for Visual Studio to execute those
scripts. Below are the steps:
a) Start up Visual Studio. Under Tools menu, select Run
SQL*Plus Script.
b) In the 'Run SQL*Plus Script' dialog box, click New Connection button.
c) In the Connection Properties dialog box, select "Oracle Database
Server (Oracle ODP.NET)" for Data Source and "Oracle Data Provider
for .NET" for Data Provider. Select a TNS alias
from Data Source Name drop-down list. If no entry is available, see
SQL*Net setup above. Enter a username and password, or select Use
Windows integrated authentication. Click Test Connection button to
test the connection. If it's successful, click the OK button to
continue.
NOTE: The scripts will create tables, stored procedures, views, and
roles. They will be owned by the database user that executed the
scripts. If the ASP.NET applications connect to the database as a
different database user than the database user that executed the
scripts, the database user (who owns the database objects that were
created for ASP.NET providers) will need to grant roles to other
database users, if they require access. For further details, please
read Chapter 1 of the Oracle Providers for ASP.NET user's Guide for
details.

Anzeige
AW: Anmerkung zur Installation der oracle-Driver
22.09.2020 15:11:34
EtoPHG
Hallo,
Alles überflüssiges Zeug!
Installiere nur die beiden im Textfile erwähnten Komponenten.
Das sich Excel ohne Meldung schliesst, ist mir noch nie begegnet.
Gruess Hansueli
AW: Anmerkung zur Installation der oracle-Driver
23.09.2020 07:39:01
Juu
Hallo nochmal,
ich habe den Treiber neu installiert (die SQL Skripte habe ich auch ausgeführt aber wahrscheinlich war das unnötig) und zusammen mit deinen Anmerkungen funktioniert es nun endlich.
Tausend Dank!
Viele Grüße
juu
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige