Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

VBA Verlinkte Excel-Tabellen: Access lahmt wenn Excel offen

Neo3000 / 6 Antworten / Flachansicht Nickles

Hallo VBA-Gurus & co. :-)

Ich bin kein besonders mächtiger VBA-Experte aber einige Ahnung hab ich schon.
Dennoch hab hab ich ein kleines aber lästiges Problem mit verknüpften Excel 2007 Tabellen in Access 2007 und ich hab keinen Ansatz wo ich was drehen kann. Das sieht folgendermaßen aus:

Mit der Auswahlabfrage "SELECT * FROM [excel 12.0;imex=0;DATABASE=" & strDISPO & "].[Januar$] UNION ALL ..." erstelle ich eine Verknüpfung zu einer in der Variablen "strDISPO" enthaltenen Excel-Datei bzw. den 12 Sheets in der Datei. Das klappt einwandfrei. Alle Datensätze aus allen Excelsheets in einer Abfrage.
Weiterhin habe ich Listefelder auf Formualren mit denen ich Werte aus dieser Abfrage weiter Filtere mit neuen Abfragen die dann die WHERE Klausel enthalten. Mal mehr mal weniger Kriterien.
Sachen wie "Dim blabla as Excel.Worksheet" und dazugehörige Dinge kann ich nicht verwenden da ich Daten auch aus Access raus, in Excel rein ändern muss/können sollte und das wohl bei 2007 so einfach nicht mehr geht. Aber mit den Abfragen schon. Geht auch bis auf folgendes nerv-Problem.

Jetzt Kommts:
Ist die Exceldatei geschlossen (Excel selbst oder eine andere Datei kann ruhig geöffnet sein) geht alles recht flott und annehmbar, aber ist DIE Datei geöffnet die ich mit den Abfragen verlinke kotzt sich Access bei den Abfragen einer ab. Es dauert ewig bis sie ausgeführt werden. Manche schneller manche ewig, aber alle braucht um einiges länger. Die längste war bei 45 Sekunden, die bei geschlossener Exceldatei nur ca. 3 Sekunden brauch. Wäre Klasse wenn jemand nen Tip hätte was zur Hölle da stört, bzw warum bei geschlossener Exceldatei alle flutscht und sobald sie offen ist das so extrem bremst. Ich dreh bald am Rad *g*. Evtl kennt ja jemand das Problem
Vielen Dank schon mal

Greetz
Kai

bei Antwort benachrichtigen
Neo3000 neanderix „ Nein. du erstellst damit keine Verknüpfung, sondern fragst die Daten direkt...“
Optionen

Hi all,

@ChrE:

Merci für deine Antwort
Dies kann ich ausschließen da ich noch in der Entwicklungsphase bin und das ganze lokal abläuft. Zudem bin ich der Einzige der damit arbeitet. Dennoch danke für deinen Link, sobald das Ding mal auf nem Netz liegt und mehrere daran rumspielen, hab ich bei Problemen schon mal ne kleine Anlaufstelle :-).

@neanderix:

Merci für deine Antwort
Du hast natürlich recht (mein Fehler), SELECT frägt direkt ab und verlinkt nicht (hatt vorher zuviel mit aclink usw. zu tun das sich dass ich grad zu allem "verlinken" sage *g*)
richtig "Verlinken" kann ich die Tabellen auch nicht, hab ich schon versucht, denn ich muss aus den Tabellen lesen, aber auch reinschreiben aus Access. Microsoft hatte wohl aus nem Rechtsstreit diese Funktion rausnehmen müssen (steht auf der website von Donkarl) und daher wird dort meine verwendete Methode als Ausweichmöglichkeit angegeben. Geht ja auch alles klasse bis auf die Geschwindigkeit wenn die Exceldatei geöffnet wird, dann wirds essig und man kann zugucken wie man älter wird.
Wegen der UNION-Sache: da sich die Abfragen variabel aus allen Tabellenblättern zusammensetzen (z.B. zeig mir alle Datensätze von Jan bis Dez wo der Auftraggeber "Kunz" heißt) oder (zeig mir alle Datensätze von Jan bis Dez wo der Auftraggeber "Kunz" heißt und noch keine Rechnungsnummer vergeben ist) usw...
Da kann ich wohl nur dies verwenden (UNION ALL). Da werd ich dann wohl mit leben müssen hm?

Greetz
Kai

bei Antwort benachrichtigen