PDA

Vollständige Version anzeigen : export nach Excel


ceren
14.02.2003, 10:37
Hallo,
weißt jemand wie man einzelne Felder aus einer Tabelle nach Excel exportieren kann. Mit dem Befehl
DoCmd.OutputTo A_TABLE, "tablname", A_FORMATXLS, Pfad & "name.xls", False
kann man schlagartig ganze Tabelle nach Excel exportieren.

Und dann noch eventuell, wie man Werte eines Feldes als Überschrift nach Excel übernehmen kann(so zu sagen drehen). Für die Deutlichkeit:

In Access:
bezeichnung Betrag
-------------------------------
kaltmiete 600
kaltmiete 400
kaltmiete 200
kaltmiete 300
kaltmiete 100
kaltmiete 500

In Excel:
kaltmiete
600
400
200
300
100
500


Für jede anregung wäre sehr dankbar.

Alexander Jan Peters
14.02.2003, 11:37
<div>
Hallo,

schau Dir mal die anderen Beiträge der Foren an, am Besten suchst Du mal nach den Stichworten <strong>Export</strong>, <strong>Excel</strong> in den Archiven, da sind Unmengen von Tipps zu finden.
Z.B. diese:
<ul>
<li><a href="http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=65022">Tabelle mit Spaltenüberschr. nach Ecxel kopieren</a></li>
<li><a href="http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=84459">Recordset(ADO) --> Excel</a> (ist allerdings etwas fortgeschritten).</li>
</ul>
Die Aufbereitung würde ich bereits in der DB vornehmen, z.B. über eine Abfrage, die enthält dann nicht die gesamten DS der Tabelle sondern die gewünschte Auswahl.

Gruß

Alex
</div>

ceren
01.03.2003, 15:22
Hallo, ich habe alle Beiträge durchgelesen , aber niergendwo gefunden, wie man die Werte eines Feldes als Überschrifte exportieren kann.


Grüsse

Alexander Jan Peters
01.03.2003, 16:51
<p>Hallo,

ich hatte das mit dem "Drehen" überlesen, das geht IMHO nur mit VBA, z.B. so:</p>
<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Public Sub</span> DataToColHeadersXL()
<span class="REM">'// Verweis auf die DAO- und</span>
<span class="REM">'// Excel-Objektbibliotheken noetig</span>
<span class="TOKEN">Dim</span> appXL <span class="TOKEN">As</span> Excel.Application
<span class="TOKEN">Dim</span> wksXL <span class="TOKEN">As</span> Excel.Workbook
<span class="TOKEN">Dim</span> db <span class="TOKEN">As</span> DAO.Database
<span class="TOKEN">Dim</span> rst <span class="TOKEN">As</span> DAO.Recordset
<span class="TOKEN">Dim</span> lCount <span class="TOKEN">As</span> <span class="TOKEN">Long</span>
&nbsp;
<span class="REM">'// Neue Excel-Arbeitsmappe anlegen</span>
<span class="TOKEN">Set</span> appXL = <span class="TOKEN">New</span> Excel.Application
<span class="TOKEN">With</span> appXL
.Visible = <span class="TOKEN">True</span>
<span class="TOKEN">Set</span> wksXL = .Workbooks.Add
<span class="TOKEN">End</span> <span class="TOKEN">With</span>
&nbsp;
<span class="REM">'// Zugriff auf die Daten</span>
<span class="TOKEN">Set</span> db = DBEngine(0)(0)
<span class="TOKEN">Set</span> rst = db.OpenRecordset(&quot;DeineAbfrage&quot;)
<span class="REM">'// Schleife</span>
<span class="TOKEN">Do</span> <span class="TOKEN">Until</span> rst.EOF
lCount = lCount + 1
<span class="TOKEN">With</span> rst
<span class="REM"> '// Wert in Excel eintragen</span>
wksXL.Worksheets(1).Cells(1, lCount) = .Fields(&quot;DeinFeld&quot;).Value
.MoveNext
<span class="TOKEN">End</span> <span class="TOKEN">With</span>
<span class="TOKEN">Loop</span>
&nbsp;
<span class="REM">'// Aufraeumen</span>
rst.Close
<span class="TOKEN">Set</span> db = <span class="TOKEN">Nothing</span>
<span class="TOKEN">Set</span> wksXL = <span class="TOKEN">Nothing</span>
<span class="TOKEN">Set</span> appXL = <span class="TOKEN">Nothing</span>
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>
<p>Ansonsten schau Dir mal die Kreuztabelle/Pivot in Access an, falls es wirklich genauso aussehen soll, wie von Dir gezeigt.

Gruß

Alex</p>

ceren
03.03.2003, 11:34
Hallo Alexander,

vielen Dank für Deinen Beitrag!

wüstest Du vielleicht wie man folgendes Problem bewerkstelligt, mit dem Drehen es funktioniert wunderbar, aber meine Tabelle beinhaltet angenommen 50 Datensätze, wobei die Inhalte des ersten Feldes(f1) gleich sind, nur die Inhlate des zweiten Feldes(f2) unterschiedlich, wenn ich jetzt dein Beispiel anwende dann bekomme ich durch's Drehen 50 Mal Kaltmiete geschrieben:
kaltmiete kaltmiete kaltmiete kaltmiete......

Das erwünschte Ergebniss wäre: die Überschrifr f2 durch den Inhalt des ersten Feldes ersetzen, das es praktisch nur einmal erscheint.
kaltmiete
34
56
78
...
...

Viele Grüsse