Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datenabfrage aus Oracle Datenbank

Datenabfrage aus Oracle Datenbank
28.06.2018 15:02:49
Berndt
Hallo zusammen,
ich stehe vor einer baldigen Herausforderung.
Um ein Excel-Tool von manueller Befüllung auf Automatischer Befüllung umzustellen, ist es von nöten einen VBA-Code zu erstellen, der die Daten aus einer Oracle-datenbank abgreift und in das Tool bringt.
Meine Frage: geht das überhaupt, wenn ja wo finde ich hilfreiche threads, lektüre, oder sonst. Informationen dazu?
VG Berndt
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Datenabfrage aus Oracle Datenbank
29.06.2018 11:56:07
Rob
Auf Youtube findest Du von The Wise Owl ein sehr gutes Tutorial zu ADODB-Verbindungen, egal ob Oracle, Access oder SQL. Funktioniert vom Prinzip identisch, nur dass Du den Connection-String anpassen musst. Die Seite www.connectionstrings.com ist hilfreich, allerdings würde ich mir den Connection-String mit Hilfe des Makro-Rekorder's in Zusammenspiel mit PowerQuery ausspucken lassen.
Anzeige
AW: Datenabfrage aus Oracle Datenbank
29.06.2018 00:22:58
Günther
Moin Berndt,
ist es von nöten einen VBA-Code zu erstellen
Nö, das sehe ich erst einmal nicht so. Power Query kann direkt auf eine Oracle-DB zugreifen.
AW: Datenabfrage aus Oracle Datenbank
29.06.2018 09:52:17
Rob
Geht das auch vollautomatisch mit Power Query? Mit VBA ja. Ist nicht provozierend gefragt, würde mich nur interessieren, da ich mit Power Query nicht so vertraut bin.
Anzeige
AW: Datenabfrage aus Oracle Datenbank
29.06.2018 11:00:40
Günther
Aus gutem Grunde: "Jein". Es geht nicht von alleine, sondern per Mausklick auf Aktualisieren. Und das finde ich besser, denn angenommen ich bin gerade bei einer Auswertung, nutze vielleicht das PQ-Ergebnis für eine PivotTable und plötzlich meint der Automatismus, dass sich ja in der Oracle-DB an entscheidender Stelle etwas getan hat...
Anzeige
AW: Datenabfrage aus Oracle Datenbank
29.06.2018 11:47:51
Rob
Ich würde das mit einem Worbkook_Open Event machen, dann besteht nicht die Gefahr, dass die Daten während der Bearbeitung aktualisiert werden.
AW: Datenabfrage aus Oracle Datenbank
29.06.2018 14:08:11
Rob
Hier ist mein Code, mit dem ich aus Access auf eine Tabelle "qry_Einkauf" zugreife. Du musst für Early Binding auf den Verweis "Microsoft ActiveX Data Objects 6.1 Library" zurückgreifen. Neben dem Tabellennamen musst Du dann nur noch die Const ConStrAccess (in Deinem Fall z.B. ConStrOracle) ändern.

Option Private Module
Const ConStrAccess As String = "Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin; _
Data Source=C:\_AutoIT\Projektdatenbank.mdb"
Sub Rückstände_abrufen()
Application.ScreenUpdating = True
Dim QryEinkaufConn As ADODB.Connection
Dim QryEinkaufRec As ADODB.Recordset
Dim QryEinkaufField As ADODB.Field
Set QryEinkaufConn = New ADODB.Connection
Set QryEinkaufRec = New ADODB.Recordset
QryEinkaufConn.ConnectionString = ConStrAccess
QryEinkaufConn.Open
With QryEinkaufRec
.ActiveConnection = QryEinkaufConn
.Source = "qry_Einkauf"
.CursorType = adOpenForwardOnly
.LockType = adLockReadOnly
.Open
End With
'Kopfzeile der Access-Tabelle in Zielbereich kopieren
Sheets("Tabelle1").Range("A5").Select
For Each QryEinkaufField In QryEinkaufRec.Fields
ActiveCell = QryEinkaufField.Name
ActiveCell.Offset(0, 1).Select
Next
'DataBodyRange der Tabelle in Zielbereich kopieren
Sheets("Tabelle1").Range("A6").CopyFromRecordset QryEinkaufRec
QryEinkaufRec.Close
QryEinkaufConn.Close
Application.ScreenUpdating = False
End Sub

Anzeige
AW: Datenabfrage aus Oracle Datenbank
29.06.2018 14:11:28
Rob
ScreenUpdating natürlich erstmal auf False und dann wieder auf True stellen. Habe ich im Code oben vertauscht.
Danke
02.07.2018 10:01:13
Berndt
Danke für eure Nachichten. Ich belese mich mal zu den Themen. Auf alle Fälle sehr guter Input den ich bekommen habe.
;
Anzeige
Anzeige

Infobox / Tutorial

Datenabfrage aus Oracle Datenbank in Excel


Schritt-für-Schritt-Anleitung

Um Daten aus einer Oracle-Datenbank in Excel abzurufen, kannst Du entweder VBA verwenden oder Power Query. Hier sind die Schritte für beide Methoden:

1. VBA-Methode:

  • Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  • Füge ein neues Modul hinzu (Einfügen > Modul).
  • Verwende den folgenden Beispiel-Code, um eine Verbindung zur Oracle-Datenbank herzustellen:
Sub DatenAusOracleAbrufen()
    Dim conn As Object
    Dim rs As Object
    Dim sql As String

    ' Hier den Connection String anpassen
    Dim connString As String
    connString = "Driver={Oracle in OraClient11g_home1};Dbq=deine_datenbank;Uid=dein_benutzer;Pwd=dein_passwort;"

    Set conn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")

    conn.Open connString
    sql = "SELECT * FROM deine_tabelle"

    rs.Open sql, conn

    ' Daten in das Excel-Sheet kopieren
    Sheets("Tabelle1").Range("A1").CopyFromRecordset rs

    rs.Close
    conn.Close
End Sub
  • Stelle sicher, dass Du den vba oracle connection string entsprechend Deiner Oracle-Datenbank anpasst.

2. Power Query-Methode:

  • Gehe zu Daten > Abrufen und transformieren > Aus Datenbank > Aus Oracle-Datenbank.
  • Gib die Verbindungsinformationen ein und wähle die Tabelle aus, die Du importieren möchtest.
  • Klicke auf Laden, um die Daten in Excel zu importieren.

Häufige Fehler und Lösungen

  • Fehler: "Provider not found"

    • Lösung: Stelle sicher, dass der Oracle Client installiert ist und dass der Connection String korrekt ist.
  • Fehler: "Invalid username/password"

    • Lösung: Überprüfe Deine Anmeldeinformationen und die Berechtigungen in der Oracle-Datenbank.
  • Fehler: "Connection timeout"

    • Lösung: Stelle sicher, dass die Oracle-Datenbank verfügbar ist und der Netzwerkzugang nicht blockiert ist.

Alternative Methoden

Wenn Du auf VBA verzichten möchtest, kannst Du auch andere Tools wie Microsoft Access verwenden, um Daten aus der Oracle-Datenbank abzurufen und dann in Excel zu importieren. Eine weitere Möglichkeit ist, ODBC-Treiber zu nutzen, um eine Verbindung herzustellen.


Praktische Beispiele

Beispiel 1: Bericht aus Oracle DB erstellen

Mit dem oben genannten VBA-Code kannst Du einen Bericht generieren, indem Du eine SQL-Abfrage anpasst, um spezifische Daten zu filtern. Zum Beispiel:

SELECT * FROM deine_tabelle WHERE status = 'aktiv'

Beispiel 2: Daten aus Oracle DB auswerten

Du kannst auch Pivot-Tabellen in Excel verwenden, um die importierten Daten zu analysieren. Stelle sicher, dass Deine Tabelle gut strukturiert ist, um die Auswertung zu erleichtern.


Tipps für Profis

  • Nutze den Makro-Rekorder, um den Connection String zu generieren, wenn Du Schwierigkeiten hast.
  • Achte auf die Sicherheit Deiner Anmeldedaten, wenn Du den vba oracle connection string verwendest.
  • Überlege, ob Du Daten vor dem Import aufbereiten willst, um die Effizienz zu steigern.

FAQ: Häufige Fragen

1. Kann ich Power Query für die automatisierte Datenabfrage verwenden?
Ja, aber Du musst den Aktualisierungsprozess manuell auslösen, indem Du auf "Aktualisieren" klickst.

2. Wie kann ich sicherstellen, dass die Verbindung zur Oracle-Datenbank funktioniert?
Teste die Verbindung im ODBC-Administrator oder in einem anderen Tool, bevor Du versuchst, sie in Excel zu verwenden.

3. Welche Excel-Version benötige ich für die Integration mit Oracle?
Die Methoden funktionieren in den meisten aktuellen Excel-Versionen, jedoch könnte es bei älteren Versionen zu Komplikationen kommen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige