PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Access Query in Excel per VBA importieren


Popopinsel
2013-06-19, 14:04:23
Hallo zusammen,

ich habe hier folgendes Problem: ich habe eine Access-Datenbank (DB.accdb), die neben einer Tabelle mehrere Abfragen/Views darauf enthält. Das Resultat so einer Abfrage dabei sind z.B. vier Spalten mit X Datensätzen.

| A.Spalte1 | A.Spalte2 | A.Spalte3 | A.Spalte4 |
-----------------------------------------------
| ... | ... | ... | ... |
| ... | ... | ... | ... |
| ... | ... | ... | ... |

Allerdings gibt es auch Abfragen, die genau nur einen Wert/Datensatz zurückgeben, z.B. eine Summe:

| B.Spalte1 |
-----------
| B.SUMME |


Jetzt sollen die Daten aus Access (2010) in Excel (2010) wandern, dort jedoch etwas anders dargestellt werden und zwar in etwa so:

| A.Spalte2 | A.Spalte3 | A.Spalte4 |
-----------------------------------
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
-------------------------------------
| B.SUMME |

Die Crux dabei:
B.SUMME soll immer in der Zeile nach dem letzten Datensatz von A.SpalteX unter A.Spalte3 sein.
B.SUMME soll nur den Wert des ersten (und einzigen) Datensatzes aus Abfrage B enthalten, also ohne den Spaltentitel.
Bei Abfrage A sollen die Titel angezeigt werden.
Die Zeilen A.SpalteX sollen farblich abwechselnd formatiert sein, also erste Zeile blaue Füllung, zweite Zeile weiße Füllung, dritte Zeile wieder blaue Füllung usw.
Per Button auf dem Worksheet sollen die Daten aktualisiert werden, sprich die Abfrage erneut ausgeführt werden.
Es soll wirklich die Abfrage aus der DB.accdb ausgeführt werden, kein SQL innerhalb von VBA!


Kann mir da jemand weiterhelfen? :confused: Danke Euch!

cessy000
2013-06-19, 14:47:19
die Resultate der Abfragen in verschiedene Tabellenblätter nach Excel
exportieren dann per VBA die Daten in Excel aufbereiten....

das alles lässt sich innerhalb von access realisieren, indem du eben den code
innerhalb der excel applikation in access ausgeführt wird.

ist allerdings nicht mal so in 10 Min nebenbei zu machen

Gast
2013-06-19, 14:57:48
grobe beschreibung:
du musst im excel vba die accdb datei öffnen, glaube braucht einen verweis auf die microsoft object library, dort die abfrage ausführen. das ergebnis ist dann in einem objekt (wahrscheinlich temporäre tabelle). dann kannst du die daten in das excel sheet schreiben. um die daten zu kombinieren könntest du beide abfragen hintereinander ausführen und dann nachdem das passiert ist die entsprechend in die einzelnen zellen reinschreiben. wenn du die spaltentitel noch zusätzlich anzeigen lassen willst brauchst du ggf. auch noch eine dritte abfrage, die spaltentitel abfragt (könnte aber auch sein, dass man das schon aus dem objekt raus bekommt).
allerdings sollte man das hier nicht unbedingt so machen. die praktikabelste lösung wäre eigentlich, in access eine abfrage zu erstellen, die dir die daten schon exakt so liefert, wie du sie für excel haben möchtest. dazu könntest du z.b. eine kreuztabelle oder pivottabelle benutzen bzw. musst eine entsprechende query/abfrage schreiben. das erspart viel überflüssigen programmieraufwand, da man die daten nicht extra wieder zusammenbauen muss. außerdem sind nachher änderungen einfacher möglich.
die spalten farblich hinzuformatieren dürfte per vba recht einfach sein, das findest du bestimmt in der vba hilfe oder bei der msdn ein beispiel dafür.
der button löst ein event aus, dass die funktion ausführt, das die daten holt (also eigentlich alles).
man könnte das ganze auch mit office tools von visual studio machen da ist das um ein vielfaches einfacher.
tut mir leid dass es nur so grob umschrieben ist aber vielleicht hilfts dir ja trotzdem weiter

Popopinsel
2013-06-21, 09:18:47
OK, danke für die Antworten, das mit dem Aufbereiten der Daten in Excel werde ich mal probieren!

Haarmann
2013-07-10, 07:42:48
Popopinsel

Abfragen in Access definieren
Export nach CSV per Makros
Excel zieht die CSV