Warum der Standard-Export nicht reicht
Du kannst eine Access-Abfrage per Mausklick nach Excel exportieren.
Aber: Formatierung? Fehlanzeige.
Zahlenformate, Farben, Kopfzeile fett â alles musst Du nacharbeiten.
Wenn das regelmĂ€Ăig passiert, lohnt sich ein Export mit VBA.
Dann bekommst Du saubere Ergebnisse. Ohne Nacharbeit. Automatisch.
Ziel: Access-Abfrage nach Excel â fertig formatiert
Was wir brauchen:
- Exportierte Daten aus einer gespeicherten Abfrage
- Excel-Workbook mit eigener Formatierung
- Kopfzeile fett
- Spaltenbreiten automatisch angepasst
- Zahlen als WĂ€hrung formatiert (wo sinnvoll)
Beispielcode: Export mit Formatierung
Sub ExportMitFormatierung()
Dim xlApp As Object
Dim xlWB As Object
Dim xlWS As Object
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim ZielPfad As String
Dim Zeile As Long
Dim i As Integer
Set db = CurrentDb
Set rs = db.OpenRecordset("qryUmsatzProKunde", dbOpenSnapshot)
If rs.EOF Then
MsgBox "Keine Daten gefunden.", vbExclamation
Exit Sub
End If
ZielPfad = CurrentProject.Path & "\UmsatzExport_" & Format(Now, "yyyymmdd_hhnnss") & ".xlsx"
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
Set xlWB = xlApp.Workbooks.Add
Set xlWS = xlWB.Worksheets(1)
' Ăberschriften schreiben
For i = 0 To rs.Fields.Count - 1
xlWS.Cells(1, i + 1).Value = rs.Fields(i).Name
xlWS.Cells(1, i + 1).Font.Bold = True
xlWS.Cells(1, i + 1).Interior.Color = RGB(200, 200, 200)
Next i
Zeile = 2
' Daten schreiben
Do While Not rs.EOF
For i = 0 To rs.Fields.Count - 1
xlWS.Cells(Zeile, i + 1).Value = rs.Fields(i).Value
Next i
Zeile = Zeile + 1
rs.MoveNext
Loop
' Spalten formatieren
xlWS.Columns.AutoFit
' Beispiel: Spalte 3 (Umsatz) als WĂ€hrung
xlWS.Columns(3).NumberFormat = "#,##0.00 âŹ"
' Datei speichern
xlWB.SaveAs ZielPfad
xlWB.Close False
xlApp.Quit
Set xlWS = Nothing
Set xlWB = Nothing
Set xlApp = Nothing
rs.Close
Set rs = Nothing
Set db = Nothing
MsgBox "Export abgeschlossen: " & ZielPfad, vbInformation
End Sub
Was Du anpassen kannst
- Abfragenamen â
"qryUmsatzProKunde"
- Formatierung â z.âŻB. Farben, SchriftgröĂen, Rahmen
- Spaltenformatierung â ĂŒber
xlWS.Columns(X).NumberFormat
Tipp: Werte nicht hart codieren â baue Dir ggf. ein Mapping pro Feldtyp.
Fehlerbehandlung nicht vergessen
FĂŒr produktiven Einsatz solltest Du On Error GoTo
ergÀnzen.
On Error GoTo Fehler
' [Code hier]
Exit Sub
Fehler:
MsgBox "Fehler beim Export: " & Err.Description, vbCritical
On Error Resume Next
xlApp.Quit
So ĂŒberlebt der Nutzer auch fehlerhafte Exporte.
Was das bringt
- Export mit einem Klick
- Immer gleiches Format
- Kein Nachbessern in Excel
- Saubere Automatisierung fĂŒr Berichte, Listen, Monatsauswertungen
Wenn Du magst, helfe ich Dir, das Skript auf Deine Struktur anzupassen.
Dann lĂ€uft das auch bei Dir â norddeutsch klar und zuverlĂ€ssig.
Keine Antworten