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
Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge
Hallo,
> Zudem bin ich der Einzige der damit arbeitet.
Das ist egal. Wichtig ist, wie viele Programme (oder mehrere Instanzen eines Programms)
die Exceltabellen öffnen. Die Anzahl der User interessiert da nicht.
Es schein ja so zu sein, dass Excel und Access laufen, wenn es langsam wird.
Abhilfe: Replikation der Daten in eine "richtige" Datenbank, mit ordentlichem record locking.
Zugriff dann per Access über ado.net oder odbc.
Gab es nicht mal einen kostenlosen MS-SQL Server?
Fang nicht damit an, deine Datenbank an Excel anzupassen.
Gruss
ChrE