Quick-Tipp: Daten nach Excel exportieren

By , 27. Februar 2009

Auf die Schnelle die aktuellen Datensätze nach Excel rüberschieben wäre doch nicht schlecht, und beeindruckt doch sicher euren Chef – der von der Materie wieder keine Ahnung hat 😉
Und wenn der wüsste wie einfach das geht…

Hier mal der ganze Code der dazu notwendig ist:

Dim oExcel As Object, i As Integer
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb

On Error Resume Next
Err.Clear
Set oExcel = CreateObject("Excel.Application")
If Err.Number <> 0 Then Set oExcel = CreateObject("Excel.Application")
On Error GoTo 0
With oExcel
    .Visible = True
    .Workbooks.Add
    .ActiveSheet.Name = "Arbeitsblatt1"
    Set rs = db.OpenRecordset(Me.RecordSource, dbOpenSnapshot)
    For i = 0 To rs.Fields.Count - 1
        .Cells(1, i + 1) = rs.Fields(i).Name
    Next i
    .Range("A2").SELECT
    .Selection.CopyFromRecordset rs
End With
rs.close
set rs = Nothing
set db = Nothing
Set oExcel = Nothing

Da obige Methode late Binding ist, benötigt man keinen Verweiss auf Excel.
Mittels .Cells(zeile,spalte) wird die Spaltenüberschriften eingetragen, die aus dem Namen der Datenfelder kommen. .Range(„A2“).SELECT setzt den Cursor auf das Feld A2 in Excel, und mittels .Selection.CopyFromRecordset rs werden alle Daten im aktuellen Recordset auf einen Rutsch nach Excel kopiert.

AV 2009

Leave a Reply

You must be logged in to post a comment.

OfficeFolders theme by Themocracy