Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
Es gibt einen Grund, warum man Access in der 64-Bit-Version gegenüber der 32-Bit-Version bevorzugen könnte, und das ist der virtuelle Arbeitsspeicher. Dieser beträgt bei der 64-Bit-Version satte vier Gigabyte, während die 32-Bit-Version nur zwei Gigabyte bietet. Dies wirkt sich vor allem dann aus, wenn viele Formulare oder Recordsets geöffnet sind – dann knallt es irgendwann einfach. Das lässt sich allerdings ändern, allerdings mit einem nicht ganz einfachen Eingriff: Es gibt in der MSAccess.exe genau ein Bit, das man ändern muss, damit auch die 32-Bit-Version über vier Gigabyte Arbeitsspeicher verfügt. Das ist erstens ohne Hilfsmittel nicht zu machen und zweitens wird diese Änderung wieder rückgängig gemacht, wenn ein Update eine neue Version der MSAccess.exe mitbringt. Also haben wir neben den Grundlagen zu diesem Problem, die wir in diesem Beitrag beschreiben, auch noch ein Tool mitgebracht, mit dem Sie die Performance von Access 32-Bit verbessern können.
Video passend zu diesem Artikel:
Was anderen Office-Anwendungen wie Outlook oder Excel längst gewährt wurde, ist bei Microsoft Access immer noch nicht geschehen: Die 32-Bit-Version von Access wird standardmäßig mit nur zwei Gigabyte nutzbarem virtuellem Arbeitsspeicher ausgeliefert.
Und das, obwohl Microsoft eigentlich schon 2020 angekündigt hatte, dies zu tun. Nun denn: Mittlerweile gibt es Tipps und Tricks, wie man die Datei MSAccess.exe selbst so anpasst, dass diese vier Gigabyte Arbeitsspeicher nutzen kann.
Download des LAA-Tools
Das kostenlose Tool finden Sie unter dem folgenden Link:
https://andreminhorst.de/amvlaa
Das amvLAA-Tool
Das ist allerdings teilweise recht unhandlich, weshalb wir ein Tool entwickelt haben, das speziell diese Aufgabe übernimmt – und noch ein wenig mehr. Genau genommen handelt es sich bei diesem Tool um eine Kombination aus einem COM-Add-In und einer ausführbaren Datei.
Das COM-Add-In stellt die Funktionen rund um LAA in Access selbst zur Verfügung. Das schließt beispielsweise eine Prüfung beim Start von Access ein, ob die Erweiterung auf vier Gigabyte derzeit aktiviert ist oder nicht. Falls nicht, wird eine entsprechende Meldung angezeigt (siehe Bild 1).
Bild 1: Meldung beim Start von Access, wenn LAA nicht aktiviert ist
Hier haben wir bereits alle Möglichkeiten, die wir benötigen:
- Ja: Startet den Vorgang, um den Arbeitsspeicher auf vier Gigabyte zu erhöhen.
- Nein: Schließt die Meldung und behält die Einstellungen bei.
- Abbrechen: Behält den Modus mit zwei Gigabyte Arbeitsspeicher bei und sorgt dafür, dass die Meldung nicht mehr angezeigt wird.
LAA-Modus mit vier Gigabyte Arbeitsspeicher aktivieren
Wenn man den LAA-Modus aktivieren und aktiviert halten möchte, klickt man hier einfach auf Ja. Dies führt dazu, dass eine weitere Meldung mit Anweisungen erscheint. Diese lauten, dass nun ein Explorer-Fenster geöffnet wird, das die zu startende .exe-Datei anzeigt (siehe Bild 2).
Bild 2: Anweisungen zum Setzen des LAA-Modus
Im nun erscheinenden Windows Explorer finden wir die Datei LaaModeToAccess32Bit.exe vor. Diese starten wir nun per Doppelklick (siehe Bild 3).
Bild 3: Die zu öffnende Datei LaaModeToAccess32Bit.exe
Danach erscheint das Fenster aus Bild 4. Wenn Sie die Access-Instanz, von der aus der Windows Explorer mit dem Tool geöffnet wurde, noch nicht geschlossen haben oder eine andere Access-Instanz noch offen ist, zeigt das Tool dies direkt an.
Bild 4: Hinweis, alle Access-Anwendungen zu schließen
Um dies zu ändern, brauchen wir das Tool allerdings nicht neu zu starten – wir schließen einfach alle Access-Instanzen und das Tool erkennt es automatisch.
Ein Klick auf die Schaltfläche LAA-Flag-Abfrage liefert dann per Meldungsfenster den aktuellen Status (siehe Bild 5).
Bild 5: Anzeige des Status bezüglich des LAA-Flags
Nun können wir mit einem Klick auf die Schaltfläche LAA-Flag an den verfügbaren Speicher von zwei auf vier Gigabyte anheben.
amvLAA in Access
Beim nächsten Start erscheint keine Meldung mehr, die auf das nicht gesetzte LAA-Flag hinweist. Access startet wie gewohnt und zeigt keine besonderen Auffälligkeiten. Mit Ausnahme derer, die wir über das COM-Add-In hinzugefügt haben. So finden wir beispielsweise im Ribbon im Tab Datenbanktools ein neues Element namens (siehe Bild 6).
Bild 6: Ribbon-Befehl zum Aktivieren oder Deaktivieren des LAA-Modus
Außerdem finden wir im Datei-Menü einige Einträge mit Informationen und Einstellungen (siehe Bild 7). Hier finden wir im oberen Bereich den aktuellen Modus – in diesem Fall ist LAA aktiviert. Deshalb bietet die Schaltfläche darunter auch die Möglichkeit, diesen Modus wieder auszuschalten.
Bild 7: Einstellungen zum Tool im Datei-Menü
Schließlich können wir im unteren Bereich noch festlegen, ob wir beim Öffnen von Access eine Meldung angezeigt bekommen wollen, wenn der LAA-Modus nicht aktiviert ist. Ist diese Option aktiviert, erscheint die Meldung, wenn durch ein Update eine neue Version der Datei MSAccess.exe installiert wurde, bei der LAA nicht aktiviert ist.
Probleme ohne LAA-Modus
Wie schon erwähnt, stehen Access in der 32-Bit-Version nur zwei Gigabyte virtueller Arbeitsspeicher zur Verfügung – gegenüber vier Gigabyte bei der 64-Bit-Version.
Probleme treten nun beispielsweise auf, wenn ein Entwickler eine Access-Datenbank mit der 64-Bit-Version erstellt hat und dort größere Mengen an Formularen, Formularen mit Unterformularen oder Recordsets geöffnet wurden.
Dabei wird mit jeder geöffneten Instanz eines Formulars mehr von dem Speicher belegt, welcher der Access-Anwendung zugewiesen ist. Der verfügbare Speicher ist einigermaßen konstant, solange der Arbeitsspeicher des Rechners dies hergibt und nicht andere Anwendungen mit höherer Priorität diesen Speicher belegen.
Aber nicht nur geöffnete und somit in der Regel sichtbare Instanzen von Formularen fressen den verfügbaren virtuellen Speicher, sondern vor allem auch Zugriffe auf Daten.
Diese treten in der Form von Recordsets auf, die nicht nur in Zusammenhang mit angezeigten Daten geöffnet werden, sondern auch per VBA-Code. Hier sammeln sich schneller relevante Datenmengen an, als man denkt und so treten dann Fehler durch fehlende Ressourcen auf.
In einem weiteren Beitrag namens Access-Speicher überwachen mit VMMap (www.access-im-unternehmen.de/1457) schauen wir uns an, wie wir den aktuellen Speicher von Access untersuchen können und wie sich verschiedene Elemente auf den virtuellen Speicher auswirken.
Hier betrachten wir in einigen Beispielen auch, welche Elemente sich wie auf den Verbrauch des virtuellen Speichers auswirken und welche Fehler auftreten, wenn dieser ausgereizt wird.
Sollte so ein Fehler auftreten und man verwendet die 32-Bit-Version von Access, kann man sich durch Aktivieren des LAA-Modus eine Menge mehr virtuellen Speicher mehr verschaffen (auch hier wieder der Hinweis, dass der Arbeitsspeicher des Rechners dies hergeben muss).
LAA-Modus immer automatisch aktivieren
Wie zu Beginn erwähnt, kann es sein, dass Microsoft ein Update liefert, das auch die MSAccess.exe durch eine neue Version ersetzt. Wie oft das geschieht, variiert je nach der verwendeten Edition.
Aber gelegentlich geschieht es, und es wäre schade, wenn die Benutzer dadurch wieder in Fehler laufen, die wir durch das Setzen des LAA-Modus weitgehend ausgeschlossen haben.
Wir haben mit dem COM-Add-In bereits eine Technik vorgestellt, mit der wir beim Öffnen von Access darauf hingewiesen werden, wenn der LAA-Modus deaktiviert wurde. Allerdings kann es auch geschehen, dass das COM-Add-In aus irgendeinem Grund deinstalliert wurde oder wir die Meldung über die entsprechende Option deaktiviert haben. Oder wir wollen gar nicht, dass sich der Benutzer in diesem Fall mit dem erneuten Aktivieren des LAA-Modus beschäftigen muss.
Dann haben wir noch eine Alternative. Die Datei LaaModeToAccess32Bit.exe können wir nämlich auch in einem „silent“-Modus starten, also ohne dass der Benutzer überhaupt etwas davon mitbekommt.
Dazu sind einige Schritte notwendig, die wir in den folgenden Abschnitten erläutern.
LAA-Modus „silent“ aktivieren
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
Testzugang
eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel
diesen und alle anderen Artikel mit dem Jahresabo