Office: (Office 2010) Mit Excel auf Oracle DB zugreifen

Helfe beim Thema Mit Excel auf Oracle DB zugreifen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Excel Gemeinde, ich würde gerne mit Excel auf eine Orcale Datenbank zugreifen und die entsprechenden Datensätze auslesen. Bis dato bemühe dazu... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von drzwockel, 17. Juni 2013.

  1. Mit Excel auf Oracle DB zugreifen


    Hallo Excel Gemeinde,

    ich würde gerne mit Excel auf eine Orcale Datenbank zugreifen und die entsprechenden Datensätze auslesen. Bis dato bemühe dazu den MSQuery und kopieren dann die Datensätze, die ermittelt wurden, in eine Tabellenblatt.

    Ich würde gerne diesen Schritt sparen und direkt aus Excel (über VBA) zugreifen. Ich dachte da an einen Editor, den den SQL Befehl zusammenbaut.

    Mit ist leider nicht ganz klar, wie ich die Connection dann aufbaue. Ich habe bereits GeGoogled und zahlreiche Informationen erhalten, leider Nichts, was mir geholfen hätte.

    Hat jemand eine Idee, Links oder eine Beispiel?

    Vielen Dan schon einmal im Voraus.

    :)
     
    drzwockel, 17. Juni 2013
    #1
  2. Hallo drzwockel,

    bei diesen Suchbegriffen -excel vba ado oracle- spukt mir Tante 'Google' folgende Link als erstes aus:
    http://hef-ro.de/vba-excel-und-oracle/
    Wenn Du die korrekten Verknüpfungsdaten hast, kann es doch schon losagehen.

    Gruß von Luschi
    aus klein-Paris
     
    Luschi, 19. Juni 2013
    #2
  3. Hallo Luschi,

    vielen Dank für die schnelle Antwort ... dieses Ergebnis habe ich noch nicht gesehen ... habe immer nach "Oracle mit Excel auslesen gesucht".


    Werde es mal ausprobieren.


    Danke
     
    drzwockel, 19. Juni 2013
    #3
  4. Mit Excel auf Oracle DB zugreifen

    Hallo Luschi,

    die Tipp funktioniert einwandfrei. Ich musste nur noch den Treiber An Ora92 anpassen und dann funktionierte es.

    Vielen Dank
     
    drzwockel, 19. Juni 2013
    #4
  5. Hallo drzwockel,

    statt der Do While-Schleife gibt es auch die 'Range.CopyFromRecordset-Methode' in Excel-Vba.

    Gruß von Luschi
    aus klein-Paris
     
    Luschi, 19. Juni 2013
    #5
  6. Hallo Luschi.

    Du hast soeben ein paar Fragezeichen in mein Gehirn transferiert ...!

    Kannst Du mir das kurz beschreiben, was Du damit meinst?


    Danke,


    Gruß vom Doc
     
    drzwockel, 19. Juni 2013
    #6
  7. Hallo drzwockel,

    aus der Excel-Vba-Hilfe: Code:
    Es genügt also
    Worksheets("meineTabelle").Cells(4, 1).CopyFromRecordset rs
    um alle Daten zu übernehmen.

    Gruß von Luschi
    aus klein-Paris
     
    Luschi, 19. Juni 2013
    #7
  8. Mit Excel auf Oracle DB zugreifen

    Hallo Luschi,

    ich habe es gerade mal ausprobiert ... geht recht flott ... den Unterschied werde ich gleich mal in einer Zeitmessung ermitteln ...


    Vielen Dank für den Tipp


    Gruß vom Doc
     
    drzwockel, 20. Juni 2013
    #8
  9. Eine Frage hätte ich da aber noch ,,,

    wie erhalte ich bei dem CopyFromRecordset die Anzahl der inportierten Datensätze ermittelt?



    Gruß vom Doc
     
    drzwockel, 20. Juni 2013
    #9
  10. Hallo drzwockel,

    mach es so:
    rs.MoveLast 'ganz wichtig
    MsgBox rs.RecordCount
    rs.Close
    con.Close
    Set rs = Nothing
    Set con = Nothing

    Gruß von Luschi
    aus klein-Paris
     
    Luschi, 20. Juni 2013
    #10
  11. Hallo Luschi,

    ich glaube, dass ich mich da vielleicht falsch ausgedrückt habe. Ich möchte nicht die Anzahl der Records in der DB wissen, sondern wie viele im Rahmen meiner SQl Anweisung aus der DB geladen wurden.



    Gruß vom Doc
     
    drzwockel, 20. Juni 2013
    #11
  12. Hallo drzwockel,

    Set rs = con.Execute(“SELECT ....;")
    Diese SQL-Select-Anweisung wird auf dem DB-Server ausgeführt und der 'rs'-Variable übergeben. 'rs' enthält also genau die Datensätze, die auch in die Exceltabelle übernommen per 'CopyFromRecordSet' werden. Und damit ist:
    Dim n As Long
    rs.MoveLast
    n = rs.RecordCount
    genau die richtige Methode zum ermitteln der Datensätze, die übernommen wurden - probier es aus.
    'rs' repräsentiert NICHT die gesamte SQL-Datenbank!

    Gruß von Luschi
    aus klein-Paris
     
    Luschi, 20. Juni 2013
    #12
  13. Mit Excel auf Oracle DB zugreifen

    Hallo Luschi,

    ich bekomme hierbei immer die Fehlermeldung, dass das Rowset nicht rückwärts abgerufen werden kann ...


    Gruß vom Doc
     
    drzwockel, 20. Juni 2013
    #13
  14. Hallo drzwockel,

    jeder Vorteil (wenig Programmcode) bringt aber auch Nachteile mit sich, die man aber abstellen kann.
    die Variable 'rs' besitzt auch die Eingenschaft 'Cursortype'.
    An der Stellschraube muß man drehen, da sie im Standard auf 'adOpenForwardOnly' gestellt ist.
    Ändere also es wie folgt ab:
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    rs.CursorType = adOpenStatic
    Set rs = con.Execute(“SELECT * FROM ......;")
    Worksheets("meineTabelle").Cells(4, 1).CopyFromRecordset rs
    rs.MoveLast
    n = rs.RecordCount
    'usw.

    Die Umstellung von 'adOpenForwardOnly' auf 'adOpenStatic' kann sich aber auf die Geschwindigkeit des Abrufens der SQL-Abfrage bemerkbar machen, so daß die Schleifen-Routine dann doch wieder vorteilhaft wird.

    Gruß von Luschi
    aus klein-Paris
     
    Luschi, 20. Juni 2013
    #14
  15. Hallo Luschi,

    vielen Dank für Deine Geduld. Leider bringt mir diese Lösung einen anderen Fehler: kann nicht auf ein geöffnetes Objekt angewandt werden.

    Langsam wird es mir zu blöd *frown.gif*
     
    drzwockel, 20. Juni 2013
    #15
Thema:

Mit Excel auf Oracle DB zugreifen

Die Seite wird geladen...
  1. Mit Excel auf Oracle DB zugreifen - Similar Threads - Excel Oracle zugreifen

  2. Tabellenblatt-Name wird nicht korrekt in das Sheet übernommen

    in Microsoft Excel Hilfe
    Tabellenblatt-Name wird nicht korrekt in das Sheet übernommen: Hallo liebe Office-Gemeinde, auch nach längerem Suchen habe ich keine Lösung für mein Problem gefunden. Ich baue gerade einen Kalender und möchte "voll automatisch" die jeweiligen Titel in den...
  3. Freigegebene Excel-Tabelle als Quelle für Seriendruck

    in Sonstiges
    Freigegebene Excel-Tabelle als Quelle für Seriendruck: Hallo, :) wir haben eine Excel-Tabelle, welche auf der Cloud liegt und bei Änderungen automatisch speichert. Es haben mehrere Personen Lese- und Schreibrechte und sobald jemand etwas abändert,...
  4. Excel: "Schwebende Beschreibung" in Zelle

    in Microsoft Excel Hilfe
    Excel: "Schwebende Beschreibung" in Zelle: Hallo, mal wieder was spannendes. :) Und zwar möchte ich erreichen, dass auf einem Arbeitsblatt Felder eine Beschriftung erhalten, wenn diese nicht ausgefüllt sind. Aufgrund von Platzproblemen...
  5. Excel 2024 Kombinationsfeld ohne Register Steuerung

    in Microsoft Excel Hilfe
    Excel 2024 Kombinationsfeld ohne Register Steuerung: Ich bin nach langer Zeit mal wieder dabei, ein Problem mit einem (ActiveX)-Kombinationsfeld zu lösen. Das Feld ist für mich zurzeit nicht nutzbnar, weil das Register Steuerung nach Rechtsklick auf...
  6. Word- und Excel-Dateien lassen sich nicht (mehr) an die Sprunglisten anheften

    in Sonstiges
    Word- und Excel-Dateien lassen sich nicht (mehr) an die Sprunglisten anheften: Hallo liebe Forengemeinde, ich hatte ein kleines Outlook-Problem, welches ich durch eine Office-Schnellreparatur versucht habe zu beheben. Leider hat das nicht geklappt. Dann folgte ich der...
  7. Text aus Word in Excel

    in Microsoft Excel Hilfe
    Text aus Word in Excel: Hallo, habe folgendes Problem: Ich muss aus vielen verschiedenen Protokollen Texte in eine Excel-Liste einfügen. Die Texte sind unterschiedlich groß bzw. lang (siehe Bild). Hatte jetzt versucht in...
  8. Excel Datei überschrieben (bzw. alte Version synchronisiert)

    in Microsoft Excel Hilfe
    Excel Datei überschrieben (bzw. alte Version synchronisiert): Liebe Profis, ich habe folgendes Problem: nach dem Öffnen einer sehr wichtigen Datei hat mein Notebook plötzlich etwas von "synchronisieren der Datei" geschrieben - das Fenster war sofort wieder...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden