This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
vba:access:classes:xlsxeporter_101 [05.02.2015 15:00:05] yaslaw |
vba:access:classes:xlsxeporter_101 [29.04.2015 12:46:40] (current) yaslaw vba:access:xlsxeporter_101 renamed to vba:access:classes:xlsxeporter_101 |
||
---|---|---|---|
Line 1: | Line 1: | ||
<const> | <const> | ||
version=1.0.1 | version=1.0.1 | ||
- | vdate=28.01.2015 | + | vdate=18.01.2015 |
fname=xlsxexporter_101.cls | fname=xlsxexporter_101.cls | ||
ns=%NAMESPACE% | ns=%NAMESPACE% | ||
Line 7: | Line 7: | ||
</const> | </const> | ||
====== [VBA][Access] XlsxExporter 1.0.1 ====== | ====== [VBA][Access] XlsxExporter 1.0.1 ====== | ||
+ | //Exporter MS Access nach Excel. Die Einfache Version.// | ||
+ | |||
==Version %%version%% %%vdate%%== | ==Version %%version%% %%vdate%%== | ||
<WRAP right round download 50%> | <WRAP right round download 50%> | ||
Line 15: | Line 17: | ||
</WRAP> | </WRAP> | ||
- | Eine kleine Klasse um schnell Daten aus Access nach Excel zu exportieren. Sie bietet die Möglichkeit, dann gleich noch einige Excel-Formatierungen durchzuführen | + | Eine kleine Klasse um schnell Daten aus Access nach Excel zu exportieren. Sie bietet die Möglichkeit, dann gleich noch einige Excel-Formatierungen durchzuführen. |
+ | |||
+ | Die neue, ausgebaute und komplexere Version findest du hier: [[vba:access:xlsxexporter]] | ||
<WRAP clear></WRAP> | <WRAP clear></WRAP> | ||
Line 22: | Line 26: | ||
===== Definitionen ===== | ===== Definitionen ===== | ||
+ | >Genauere Doumentaion folgt | ||
Wird das Objekt terminiert, wird automatisch die Methode quit() ausgeführt. Die Änderungen werden dabei gespeichert und die internen Objekte (Excel-Instance,Workbook etc.) geschlossen und abgebaut. | Wird das Objekt terminiert, wird automatisch die Methode quit() ausgeführt. Die Änderungen werden dabei gespeichert und die internen Objekte (Excel-Instance,Workbook etc.) geschlossen und abgebaut. | ||
- | Die meisten Methoden und Properties sind im Code sauber beschrieben. Wie man sie anwendet sieht man in den Beispielen. | + | ==== Enumerator ==== |
+ | === xeParams === | ||
+ | Diekombinierbaren Parameter für den Export | ||
+ | Die Parameter können kompiniert werden. zB. xeReplaceExistFile+xeHasFieldNames | ||
+ | <code vb>Public Enum xeParams | ||
+ | xeNone = 0 'Kein Parameter | ||
+ | xeReplaceExistFile = 2 ^ 0 'Falls die Exportdatei bereits exisitert, kann diese ersetzt werden | ||
+ | xeHasFieldNames = 2 ^ 1 'Feldnamen werden in die erste Zeile geschrieben | ||
+ | End Enum</code> | ||
+ | ==== Methoden ==== | ||
- | Die Formate sind einfache Excel-Ranges. Alle Formateigenschaften die ein Range haben kann, kann zugeordnet werden. | + | === export() === |
+ | <code>object.export(source, filepath [,spreadsheettype [,params]])</code> | ||
+ | <code vb>Public Sub export( _ | ||
+ | ByRef iSource As Variant, _ | ||
+ | ByVal iFilePath As String, _ | ||
+ | Optional ByVal iSpreadSheetType As AcSpreadSheetType = acSpreadsheetTypeExcel12Xml, _ | ||
+ | Optional ByVal iParams As xeParams = xeReplaceExistFile + xeHasFieldNames _ | ||
+ | )</code> | ||
+ | * **iSource** Quelle. Tabellenname oder View-Name oder SQL-String | ||
+ | * **iFilePath** Export-Pfad. Pfad zur Datei dieerstellt werdn soll. | ||
+ | * **iSpreadSheetType** Excel-Format. Typ des Spreadsheets. Standart: Excel-12 XML | ||
+ | * **iParams** Parameters. verscheidene Parameter. Siehe [[#xeparams|Enumerator xeParams]] | ||
- | Beim terminate() der Klasse wird das Excelsheet gespeichert und die Excelinstanz geschlossen. Darum kann man das ganze in einem With-Plock handeln | + | Mit export()exportiert man eine Quelle in ein Excel-Sheet |
- | ===== Grober ablauf ===== | + | === instance() === |
- | In der folgenden Reihenfolge sollten die versch. Schritte aufgerufen werden. //Kursiv// geschrieben Punkte sind optional | + | <code>Set object = XlsExporter.instance(source, filepath [,spreadsheettype [,params]])</code> |
+ | <code>Set object = XlsExporter(source, filepath [,spreadsheettype [,params]])</code> | ||
+ | Eine neue Instanz der Klasse wird angelegt und der Export wird durchgeführt. | ||
- | 1) Objekt erstellen | + | Die Parameter entsprechen denen der [[#export|Methode export()]] |
- | Set xExp = XlsxExporter("my_table", "c:\my_path\my_file.xlsx") | + | |
- | //2) Paramters setzen, falls man das nicht bereits in 1) gemacht hat// | + | Die Methode instance() hat das versteckte Attribut ''Attribute instance.VB_UserMemId = 0''. Dadurch lässt sie sich direkt aus der Klasse ausführen. |
- | xExp.paramReadableHeader = true | + | |
- | //3) Standardformat anpassen// | + | === quit() === |
- | xexp.defaultFormat.Font.Size = 10 | + | <code>object.quit [save Yes/No]</code> |
- | //4) Standardformat auf alle vdefinierten Formate anpassen// | + | Speicher das offene Workbook und schliesst die Datei und die Excelinstanz |
- | xExp.requeryDefaultFormats | + | |
- | //5) Dateitypenformate anpassen// | + | ==== Properties ==== |
- | xExp.format(dbLong).Font.Italic = true | + | |
- | //6) Weitere Formate definieren// | + | === range === |
- | xExp.format("MEIN_FORMAT_1").foont.bold = true | + | <code>range = object.range([Cell1 [,Cell2]])</code> |
- | 7) Exportieredie Daten | + | <code>range = object.sheet.range([Cell1 [,Cell2]])</code> |
- | xExp.export | + | Mit dem range-Property greifft man direkt auf das Worksheet mit den exporetierten Daten zu. Der Aufruf ist analog zu Excel. Mit dem Range kann man direkt Formatierungen etc. analog zu Excel-VBA im Excelsheet durchführen. Es ist identisch wie das .sheet.range. Aber da man den Range am meisten braucht, habe ich ihn extra hinzugefügt |
- | //8) Formatierungen anweden// | + | |
- | xExp.doFormatColumnsByType | + | === sheet === |
- | xExp.doFormat "MEIN_FORMAT_1", "C:C" | + | <code>sheet = object.sheet</code> |
- | 9) Objekt abbauen | + | Das sheet-Property gibt eine Referenz auf das Worksheet. Damit lassen sich ganz normale Worksheetbefehle absetzen |
- | Set xExp = Nothing | + | |
---- | ---- | ||
===== Beispiele ===== | ===== Beispiele ===== | ||
- | ==== Einfacher Export ohne weitere FOrmatierungen ==== | + | Erste Zeile und erste Spalte Fett setzen. |
<code vb> | <code vb> | ||
+ | Dim exp As new XlsxExporter | ||
+ | exp.export "my_table", "c:\temp\__tt.xlsx" | ||
+ | exp.range("1:1").Font.Bold = True | ||
+ | exp.range("A:A").Font.Bold = True | ||
+ | exp.quit | ||
+ | Set exp=Nothing</code> | ||
+ | Analog aber ohne feste Variablenzuordnung | ||
+ | Da das Objekt nur temporär geöffnet ist (ist keiner Variable zugewiesen), wird am Ende des With das Objekt zerstört und somit quit() ausgeführt. Das muss also nicht expliziet gemacht werden | ||
+ | <code vb> | ||
+ | With XlsxExporter("my_table", "c:\temp\__tt.xlsx") | ||
+ | .range("1:1").Font.Bold = True | ||
+ | .range("A:A").Font.Bold = True | ||
+ | End With</code> | ||
+ | Wenn man nur die Titelzeile formatieren will, gehts natrülich noch kürzer | ||
+ | <code vb> | ||
+ | XlsxExporter("my_table", "c:\temp\__tt.xlsx").range("1:1").Font.Bold = True | ||
+ | </code> | ||
---- | ---- |