Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Werte aus Access Tabellen in Excel importieren (per VBA)





Frage

Hallo, ich hoffe mir kann jemand weiterhelfen. Folgende Sitution: In Access 2007 habe ich verschiedene Datenquellen verknüpft. Zusätzlich habe ich noch ein paar Tabellen. Ich benötige nun bestimmte Werte aus den Datenquellen/Tabellen in einer bestimmten Reihenfolge in Excel. Ich benutze auch Excel 2007. Gibt es die Möglichkeit mit VBA zu sagen nehme die Wert a,b,c aus Tabelle x,y,z der Accesdatenbank und schreibe sie in Zelle l,m,o? (so ähnlich wie in einer SQL Abfrage? Wobei ich keine extra Tabelle bauen will) Die Werte müssen eine bestimmte Reihenfolge haben da sie anschließend weiter verarbeitet werden. Grundkenntnisse in VBA sind vorhanden. Jedoch weiß ich nicht wie ich diesen Import aufbauen soll. Ich will das ganze nicht über Makros lösen weil sich noch einiges ändern wird. Dieser Import ist eben der Anfang. Hoffe mir kann jemand weiter helfen.

Antwort 1 von lorf55

Hallo littleCherry,
versuche es doch mal mit Excel Query, wie hier. Dadurch vermeidest du VBA.

Gruß
lorf

Antwort 2 von littleCherry

Guten Morgen,
so ein ExcelQuery hilft mir nicht weiter. Ich muss ja weiterhin die Daten von Hand angeben.
Das ganze soll aber automatisiert werden. Deswegen die Geschichte mit VBA.

Trotzdem Danke für deinen Vorschlag.

Gruß Cherry

Antwort 3 von lorf55

Hallo nochmal,
wo musst du weiterhin die Daten von Hand angeben ?
Diese Query kann man abspeichern und dann den Aufruf als Makro aufzeichnen, so dass du nur noch auf einen Button drücken brauchst, damit deine Werte ab einer bestimmten Zelle in der Tabelle stehen.
Denn
- hast du es "so ähnlich wie in einer SQL Abfrage",
- musst "das ganze nicht über Makros lösen weil sich noch einiges ändern wird."
- ist "Die Werte müssen eine bestimmte Reihenfolge haben da sie anschließend weiter verarbeitet werden." auch erfüllt.
- ist "Das ganze soll aber automatisiert werden. " auch erfüllt.

Wenn du die Tabellenwerte nicht aufeinanderfolgend in Excel einfügen willst, würde ich trotzdem die Excel Query nehmen, aber in eine temporäre Tabelle schreiben und denn mit Range(...)- und Cells(...)-Befehlen weiter verteilen und die temporäre Tabelle denn löschen. Oder mehrere Querys in ein Makro aufnehmen und an verschiedene Stellen schreiben lassen.

Wenn man es denn wirklich nur mit VBA machen will, könnte man nach Late Binding und GetObject( googeln und findet denn, wie man den Zeiger auf die MDB erhält:
"Examples Of Using Late Binding To Connect To Other Applications" - http://www.excelguru.ca/node/10
"VBA Coding- The Power of Interconnectivity" -
http://www.msofficeemrproject.com/Book10.htm

Wenn man das denn hat, muss man den gewünschten Recordset öffnen, über Fields die Felder auslesen und mit Range(..) oder Cells(..) die Werte in der Excel-Tabelle eintragen, den Recordset schließen, die Datenbank schließen, mit Quit Access beenden und den Zeiger auf Nothing setzen (siehe auch http://support.microsoft.com/kb/192919).
Dafür reichen allerdings VBA-Grundkenntnisse zum Erkennen und Beseitigen von möglichen Fehlern nicht aus (wenn du es überhaupt gebacken kriegst). Also ich würde es nur so machen, wenn man mich mit viel Geld dazu zwingt.

Nun ja, das waren mein 0,02€ dazu.

Gruß
lorf

Antwort 4 von littleCherry

danke für die Antwort.
Dann werde ich das ganze mal versuchen so zu lösen.