Access: Aktualisierung nur bei Änderungen
15.04.2014 16:56:58
Thomas
Ich habe eine Frage die der Performancesteigerung eines VBA-Makros dienen soll.
Background:
Ich habe eine Übersichtstabelle (.xlsm) welche sich flexibel Daten aus meheren Dateien (ca.15 - 25 je nach Einstellung) zieht. Diese sind wiederum auch ganzschön vollgestopft mit Formeln und zerren somit mächtig an der Performance, besonders da alle zum Zeitpunkt der Aktualisierung gleichzeitig geöffnet sein müssen.
Beim Starten der Übersichtstabelle wird die automatische Berechnung deaktiviert. Ein Makro verwaltet dann das öffnen, aktualisieren und schließen der einzelnen Tabellen.
Solange ein Update der Ist-Tabellen deaktiviert ist, braucht der Durchlauf des Prozesses auch "nur akzeptable" 2-3min. Schlimm wirds, wenn die Istdaten, welche über zwei Pivottabellen aus zwei Access-Datenbanken gezogen werden, aktualisieren lassen möchte.
Fakt ist das ich in dem Fall der Aktualisierung 5 Tabellen habe, die sich mit jeweils 2 Pivottabellen auf die absolut identlischen 2 Access-Abfragen beziehen.
Code zum Laden:
For Each pivots In ActiveWorkbook.PivotCaches
pivots.Refresh
Next
Die Access-Abfrage läd sich im Rahmen einer Konsolidierung die Werte aus jeweils ca. 7-10 verknüpften Netzwerkdateien, welche jedesmal neu geladen werden.
Die Fragen
a)
Können die PivotCaches irgendwie Zwischengespeichert und dann gezielt abgerufen werden? - Um ein wiederholtes Durchlaufen der Abfragen zu vermeiden.
b)
Können verknüpfte Dateien in Access so eingestellt werden, dass sie sich nur bei vorhandenen Änderungen neu laden? (z.B. über Attribut Änderungsdatum) - Um das wiederholte laden der identischen Netzwerkdateien zu unterbinden.
Viel Text, aber ich wollte nix vergessen. Sollten dennoch Nachfragen bestehen liefere ich gerne weitere Infos.
Ich danke euch vielmals.
Thomas