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.
2 Antworten
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.
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.