Frage von Frost209, 68

Mit Access und VBA einen formatierten Excel-Export durchführen?

Guten Tag, ich hänge mal wieder bei einer Access - Excel Frage fest.

Ich habe ein Access eine Abfrage geschrieben, die mir sortiert eine ID, den zugehörigen Namen und alle dazu zugewiesenen Daten ausgibt.

Da jede Id + name mehrere Daten haben kann, steht das ganzen in mehreren zeilen untereinander. Ich möchte das ganze nun in eine Excel-Datei via Makro exportieren und das ganze so formatieren das Id + name nur einmal drann steht und dann alle Daten.

Das ganze sieht also eig. so aus.

id || name || daten

1 || n1 || daten1

1 || n1 || daten2

1 || n1 || daten3

und soll in der Exel Datei dann so aussehen.

id || name || daten

1 || n1 || daten1

_ || _ || daten2

_ || _ || daten3

_ bedeutet das dort kein Eintrag in der Zelle mehr steht. Ich habe das bisher so gemacht, das ich Die Daten aus Access händisch in eine Excel kopiert habe und dann dort mit einem Makro alles raus sortiert habe. Dim xErsteZeile As Long Dim xZeile As Long

        xErsteZeile = Cells(Rows.Count, 1).End(xlUp).Row
    
        For xZeile = xErsteZeile To 1 Step -1
          If Application.WorksheetFunction.CountIf(Columns(1), Cells(xZeile, 1).Value) > 1 Then
                Range("A" & xZeile).Select
                Selection.Delete Shift:=xlUp
                Range("B" & xZeile).Select
                Selection.Delete Shift:=xlUp
          End If
        Next

Ich würde das ganze jetzt aber über Access machen da es ja der Ausgangspunkt ist. Wenn ich ein Export in ACCES anschaue in VBA sieht dieser ja so aus.

    DoCmd.OutputTo acOutputQuery, "jh_01_01_Abfrage", "Excel97-Excel2003Workbook(*.xls)", "", True, "", , acExportQualityPrint

kann ich davor die Daten noch bearbeiten wie in Excel? Und wenn ja kann mir eventuell jemand einen Tipp geben?

Würde mich sehr freuen.

Grüße

Frost.

Expertenantwort
von Suboptimierer, Community-Experte für Excel, 62

Du hast zwei Möglichkeiten. 

Entweder du liest die Abfrage zeilenweise in Access und schreibst sie zeilenweise in eine leere Excelmappe. Ein Excel.Application-Objekt sollte mit Access einfach erstellt sein.

Oder du exportierst die Daten wie gehabt und öffnest die Mappe anschließend mit VBA aus Access und führst dein Makro aus, welches du bislang in Excel ausgeführt hast.

Antwort
von Herb3472, 61

Du könntest die Daten der Abfrage als Grundlage für einen Access Report nehmen. Dort gruppierst Du dann die Daten nach id und druckst je Gruppe die id und den namen nur einmal jeweils am Gruppenkopf aus, die einzelnen Datensätze enthalten dann nur mehr die Daten. Den Report kannst Du dann nach Excel exportieren. Nachteil: die Form ist etwas anders als von Dir beschrieben, jede Gruppe hätte einen Gruppenkopf mit id und name.

Keine passende Antwort gefunden?

Fragen Sie die Community