PDA

Vollständige Version anzeigen : TransferSpreadsheet Export nach Excel


zkiss
27.09.2005, 07:34
Hallo Profis,

ich habe einen Code, der mir Tabellendaten an Excel übergibt, klappt auch ganz gut.
Wie kann ich es anstellen, dass ich für jedes (Access) Feld an Excel einen anderen Spaltennamen übergebe.

z.B. heißt das Feld in Access97 "Datum" und soll nach Export in Excel "erledigt" heißen.

Ein zweites kleines Problem habe ich noch mit dem Code, offensichtlich wird der Prozess nicht richtig geschlossen. Danke für Tipps

Private Sub ExportTab_Click()

Dim xlAnw As Object

' Export

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "A97Tab", _
"C:\ExcelTab.XLS", , "TabExport"


' Nun werden die Daten in Excel formatiert

Set xlAnw = CreateObject("excel.application")
xlAnw.Visible = False ' läuft unsichtbar im Hintergrund
xlAnw.Workbooks.Open FileName:="C:\ExcelTab.XLS"
xlAnw.Sheets("TabExport").SELECT
xlAnw.Rows("1:1").SELECT
xlAnw.Selection.Font.Bold = True ' Beispiel für Schrift = Fett
xlAnw.Cells.SELECT
xlAnw.Selection.Columns.AutoFit ' Beispiel für optimale Zellenbreite
xlAnw.activeWorkbook.Save
xlAnw.activeWorkbook.Close
xlAnw.Quit
Set xlAnw = Nothing


End Sub

Aragorn_kog
27.09.2005, 07:44
Hallo ...

das SELECT-INTO-Statement könnte vielleicht hilfreich sein ...

Erstelle ein SQL-Statement über deine Tabelle mit den neuen Spaltennamen als Aliasnamen ...

Folgende Funktion wandelt das SQL-Statement in ein SELECT-INTO-Statement um:

________________________________
Private Function of_getSQLCreateExcel(as_ExcelPathName As String) As String
Dim li_Pos As Integer

li_Pos = InStr(is_SQL, " FROM")
of_getSQLCreateExcel = left$(is_SQL, li_Pos - 1) & " INTO [Excel 8.0;DATABASE=" & as_ExcelPathName & "].Tabelle1" & Mid$(is_SQL, li_Pos)

End Function
________________________________

Mit

CurrentDB.Execute of_getSQLCreateExcel(as_PathForExcelSheet)

kannst du den Export an der entsprechenden Stelle dann durchführen ...

Grüße

Michael