Office: SQL-Tabelle nach Excel exportieren

Helfe beim Thema SQL-Tabelle nach Excel exportieren in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich muss in einer Access-Anwendung Daten aus einer SQL-Datenbank mit ADO (SQLOLEDB.1) in eine neue Excel-Datei exportieren. Der... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Eisbergle, 17. August 2015.

  1. SQL-Tabelle nach Excel exportieren


    Hallo zusammen,

    ich muss in einer Access-Anwendung Daten aus einer SQL-Datenbank mit ADO (SQLOLEDB.1) in eine neue Excel-Datei exportieren.

    Der SQL-Teil funktioniert problemlos in der kompletten Anwendung.

    ich habe es mit einer ADO-Verbindung zu Excel probiert, komme jedoch einfach nicht weiter und finde auch keine weiteren Hinweise im Netz.

    hat einer von Euch schon Erfahrung damit?

    Hier mal mein stark vereinfachter Code
    =========================
    sub test

    Dim exCn As New ADODB.Connection
    Dim exRs As New ADODB.Recordset
    Dim sqlRs As New ADODB.Recordset
    Dim i As Integer

    Set exCn = New ADODB.Connection

    exCn.Provider = "Microsoft.Jet.OLEDB.4.0"
    exCn.Properties("Data Source") = "c:\temp\test.xls"
    exCn.Properties("Extended Properties") = "Excel 8.0" ' geht auch .xlsx?
    exCn.Properties("Persist Security Info") = False
    exCn.Open ' öffnet leider nur eine bestehende xls

    zwSql = "select * from tjn"
    Call SqlSelect(sqlRs, "SELECT * FROM sqltable WHERE feld1 = "otto") ' fertige Routine liefert SQL-Ergebnis zurück (funktioniert!)

    Do While Not sqlRs.EOF
    If exRs.State = adStateOpen Then exRst.Close

    With exRs
    .ActiveConnection = exCn
    .CursorType = adOpenKeyset
    .LockType = adLockOptimistic
    .Source = "SELECT * FROM [Tabelle1$A1:B1]"
    .Open
    .AddNew "Feld1", "Feld2" '

    :)
     
    Eisbergle, 17. August 2015
    #1
  2. Daten schreiben in ein Excelsheet per SQL ist eher problematisch und so auch wenig angewandt.

    Daher: Suche oder erstelle eine Excelinstanz (Automation), erstelle eine neue Mappe und kopiere das vorhandene Recordset (wenn man SQL-Ergebnis darunter verstehen kann) per Excelmethode CopyFromRecordset an die gewünschte Stelle eines vorhandenen gewünschten Arbeitsblattes.
     
  3. Wenn es Dir "nur" um eine komplette Tabelle geht, starte in Excel den Assistenten (Register Daten) "Aus anderen Quellen...". Dort SQL auswählen....
     
    fraeser, 19. August 2015
    #3
  4. SQL-Tabelle nach Excel exportieren

    fraeser, 19. August 2015
    #4
  5. Danke für Eure Antworten:

    @ebs17: ich werde es mal probieren, obwohl mir die SQL-Methode besser gefällt, da es reibungsloser in den Ablauf passen würde *frown.gif*

    @fraeser: es werden Daten aus der Access-Anwendung anhand eines Filters selektiert, diese müssen exportiert werden. Eine Excel-Instanz ist problematisch, da es sich um mehrere 10.000 Datensätze handeln kann. Dies läuft mit einzelnen Datenfeldern kopieren einfach viel zu lange.

    @all: hat noch jemand eine Idee zur SQL-Methode nach Excel?
     
    Eisbergle, 19. August 2015
    #5
  6. Naja, das sequenzielle Übertragen von Einzelwerten wie im letzten Codeabschnitt versucht hat mit SQL nichts mehr zu tun.

    Du könntest ...
    - in Access eine Tabelle oder gespeicherte Abfrage aus Deinem SQL-Ergebnis erzeugen und dann per TransferSpreadsheet exportieren.
    - eine Anfügeabfrage probieren, sofern Du auf eine SQL-Anweisung als unmittelbare Quelle zurückgreifen kannst. Dabei wäre zur Ausführung DAO wohl geeigneter, weil man da einfach mehrere verschiedene Datenbanken verknüpfen kann.
    Ich glaube, Anfügeabfrage ging noch, Aktualisierung aber nicht.

    Ein Recordset, was Du augenscheinlich verwendest, kann man (einzelwertweise oder im Ganzen wie vorgeschlagen) nur an Excelobjekte (Zellen, Arbeitsblatt), also letztlich an eine Arbeitsmappe innerhalb einer nutzbaren Excelinstanz übergeben. Wenn Du den von fraeser vorgeschlagenen Weg aus Access heraus steuern willst, würde man für die Ausführung per VBA gleichermaßen eine Referenz auf die Arbeitsmappe benötigen.
     
  7. \@ebs17

    bin leider erst heute wieder dazu gekommen ...

    danke, hast Recht, das wäre wieder SQL zu Fuß gewesen :-)

    die CopyFromRecordset-Methode hat wunderbar geklappt und ist eigentlich auch recht elegant und vor allem SCHNELL
     
    Eisbergle, 26. August 2015
    #7
Thema:

SQL-Tabelle nach Excel exportieren

Die Seite wird geladen...
  1. SQL-Tabelle nach Excel exportieren - Similar Threads - SQL Tabelle Excel

  2. Tabellen-Datenquelle in ganzem Dokument ändern

    in Microsoft Access Hilfe
    Tabellen-Datenquelle in ganzem Dokument ändern: Hallo, ich habe eine Access-Datenbank (FE & BE getrennt) mit mehreren Tabellen, Abfragen und Formularen. Nun möchte ich das BE nach SQL migrieren. Den Assistenten hierzu scheint es ja nicht mehr...
  3. Excel-Tabellen mit SQL auswerten

    in Microsoft Excel Hilfe
    Excel-Tabellen mit SQL auswerten: Das Problem: In unserem Betrieb wollen die Leute von mir einfache Tabellenauswertungen auf Datenbankbasis. Die Tabellen sind auch sehr kurz so, daß sich ein Access-"Monstrum" nicht lohnt. Deshalb:...
  4. Aus SQL-Tabelle Daten in Excel-Tabelle einlesen

    in Microsoft Excel Hilfe
    Aus SQL-Tabelle Daten in Excel-Tabelle einlesen: Hallo zusammen, ich soll in einer Excel-Tabelle eine Auswertung mit Grafischen Diagrammen basteln, die sich auf Daten aus einer SQL-Tabelle beziehen. Meine ersten Frage wäre jetzt mal zuerst,...
  5. MS-SQL Tabelle per ODBC mit VBA verknüpfen

    in Microsoft Access Hilfe
    MS-SQL Tabelle per ODBC mit VBA verknüpfen: Hallo zusammen, bisher verwende ich in Access 2013 / 2016 die Funktion "Externe Daten" -> "ODBC-Datenbank" um Tabellen aus einer MS-SQL Datenbank zu verknüpfen. Das funktioniert soweit bestens....
  6. Zugriff auf verknüpfte SQL Server Tabelle

    in Microsoft Access Hilfe
    Zugriff auf verknüpfte SQL Server Tabelle: Hallo, mit dem folgenden Code möchte ich eine Änderung des MWSt-Satzes in eine verknüpfte SQL-Server Tabelle zu schreiben: Private Sub txtMWStSatz_AfterUpdate() Dim db As DAO.Database Dim rst As...
  7. Tabelle in VBA via SQL String erstellen

    in Microsoft Access Hilfe
    Tabelle in VBA via SQL String erstellen: Hallo zusammen! ich würde gerne via VBA Prozedure eine Tabelle vorerst löschen und dann neu erstellen. Bislang habe ich dies immer auf Basis einer Bestehenden Anfrage gemacht was auch super...
  8. Access erkennt die Identitätsspalte in einer verknüpften SQL Server-Tabelle nicht

    in Microsoft Access Tutorials
    Access erkennt die Identitätsspalte in einer verknüpften SQL Server-Tabelle nicht: Access erkennt die Identitätsspalte in einer verknüpften SQL Server-Tabelle nicht Access für Microsoft 365 Access 2019 Access 2016 Mehr... Weniger...
  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