Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Access Tabelle exportieren in Excel

Forumthread: Access Tabelle exportieren in Excel

Access Tabelle exportieren in Excel
29.01.2013 00:58:59
Enrico
Hallo Liebe Forumsmitglieder,
nach langem hin und her bin ich nun fast schon am verzweifeln :-(
Allerdings weiss ich euer Wissen sehr zu schaetzen! ;-)
Ich moechte Daten aus Access exportieren und in Excel niederschreiben.
Die Anforderung ist, dass die Header in Excel uebersetzt werden koennen.
Es gibt viele Leerzeilen, die beruecksichtigt werden muessen.
Ich habe mir eine Rohdatentabelle in Access gebaut, die ich per code erzeugen kann:
- Primaerschluessel: CSV_ID
- CSV_ROW: Referenz fuer die Exeltabelle
- CSV_COLUMN: Referenz fuer die Exeltabelle
- CSV_Data: Die Daten die in der Exeltablle in Cell(row,column) geschrieben werden sollen
in Excel wuerde ich jetzt mit index/match/offset arbeiten...geht aber in Access nicht so wie ich dacht.
Meine Fragen:
1) Ist es sinnvoll die Datenstruktur in Access erst in einer Tabelle zu erzeugen und Sie dann ueber eine Referenzstruktur zu uebertragen?
habe schon oefter gesehen, dass man eigentlich recordsets erzeugt, allerdings war ich auch nicht smart genug in einer query die erforderlichen leeren zeilen zu erzeugen (Sprich ich habe Daten in Zeile 4,5 & 10; muss aber beim exportieren in Zeilen 4,5,6...,10 schreiben, auch wenn die zelle uebersprungen wird)
2) wie kann ich in der tabelle die hoechste ID auslesen und in einer variable speichern?
i=DMax("[CsvID]", "tblCsvData")~f~
funktioniert nicht, ein beliebiges anderes Feld (eben nicht der Schluessel) meiner Tabelle klappt, aber hilft nicht
3) Die allgemeine Funktion eine csv-Datei zu erzeugen/ueberschreiben funktioniert.
Die ueberlegung war nun mit einer For schleife durch die Access-Tabelle zu gehen und entsprechend den eintraegen die informationen (zeile, spalte, daten) aufzunehmen und zu uebertragen. Leider scheitert es hier wieder an einer moeglichkeit die ID zu durchsuchen.
~f~Result = DLookup("[CsvID]", "tblCsvData", "[CsvID]= " & i)
If not isnull(result) abfragen um dann die referenzen einzulesen
scheitert mit run-time error 2001; z.b: kleinste ID ist 125, aber die for schleife faengt bei 1 an und entsprechend gibt es den eintrag ja nicht.
Ich hoffe auf eure Antworten und wuensche einen guten Start in den neuen Tag.
Besten Dank vorab und schoenen gruss aus Mexico,
Enrico

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Access Tabelle exportieren in Excel


Schritt-für-Schritt-Anleitung

Um Daten aus einer Access-Datenbank in Excel zu exportieren, befolge diese Schritte:

  1. Öffne Access und lade die Datenbank, die Du exportieren möchtest.
  2. Erstelle eine Abfrage oder nutze eine bestehende, um die gewünschten Daten zu filtern.
  3. Exportiere die Abfrage:
    • Gehe zu Datenblattansicht der Abfrage.
    • Klicke auf Externe Daten im Menüband.
    • Wähle Exportieren und dann Excel.
  4. Wähle das Zielverzeichnis und lege den Dateinamen fest.
  5. Achte darauf, die Option Mit Datenbankformat exportieren auszuwählen, um die Formatierung beizubehalten.
  6. Klicke auf OK und befolge die Anweisungen, um den Export abzuschließen.

Falls Du die Header in Excel übersetzen möchtest, kannst Du dies nach dem Export in Excel manuell anpassen.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 2001"
    Dieser Fehler tritt auf, wenn Du versuchst, auf eine ID zuzugreifen, die nicht existiert. Stelle sicher, dass Deine Schleife bei der kleinsten ID beginnt, die in der Tabelle vorhanden ist.

  • Fehler: Leere Zeilen nicht berücksichtigt
    Wenn Du beim Exportieren leere Zeilen brauchst, stelle sicher, dass Du diese in Deiner Abfrage einfügt. Du kannst dazu eine Hilfsabfrage erstellen, die die leeren Zeilen generiert.


Alternative Methoden

Falls der direkte Export nicht funktioniert oder Du mehr Kontrolle benötigst, kannst Du auch VBA verwenden:

Sub ExportAccessToExcel()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim xlApp As Object
    Dim xlSheet As Object
    Dim i As Integer

    Set db = OpenDatabase("DeinDatenbankPfad")
    Set rs = db.OpenRecordset("tblCsvData")
    Set xlApp = CreateObject("Excel.Application")
    Set xlSheet = xlApp.Workbooks.Add.Sheets(1)

    i = 1
    Do While Not rs.EOF
        xlSheet.Cells(i, 1).Value = rs.Fields("CSV_Data").Value
        ' Füge hier weitere Logik hinzu, um leere Zeilen zu berücksichtigen
        i = i + 1
        rs.MoveNext
    Loop

    xlApp.Visible = True
    rs.Close
    db.Close
End Sub

Diese Methode gibt Dir die Flexibilität, den Exportprozess zu steuern und leere Zeilen programmgesteuert einzufügen.


Praktische Beispiele

Ein Beispiel für eine Tabelle in Access, die Du exportieren möchtest, könnte folgendermaßen aussehen:

CSV_ID CSV_ROW CSV_COLUMN CSV_Data
1 1 1 Daten A
2 2 1 Daten B
3 4 1 Daten C

Wenn Du diese Daten nach Excel exportierst, musst Du sicherstellen, dass die Zeilen 3 und 5 leer bleiben.


Tipps für Profis

  • Nutze VBA für komplexe Exportanforderungen, insbesondere wenn Du viele leere Zeilen berücksichtigen musst.
  • Überlege, die Datenbankstruktur in Access zu optimieren, um den Export zu erleichtern.
  • Halte die Excel-Datei nach dem Export sauber, indem Du unnötige Formatierungen vermeidest.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass alle Daten korrekt exportiert werden?
Überprüfe Deine Abfrage in Access. Stelle sicher, dass alle gewünschten Datensätze angezeigt werden, bevor Du mit dem Export beginnst.

2. Was ist der beste Weg, um leere Zeilen in Excel zu erstellen?
Du kannst dies manuell im Excel-Dokument tun oder eine VBA-Lösung verwenden, die die leeren Zeilen während des Exports automatisch hinzufügt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige