Access-Addin ständig inaktiv

Letzte Änderung am 12. November 2020 by Christoph Jüngling

Konkret geht es um das Access-Addin OASIS und dessen seltsames “Verschwinden” von der Oberfläche. Es scheint laut Philipp ein größeres Problem zu sein und nicht nur OASIS zu betreffen. Leider muss ich zugeben, bislang auch nur an der Oberfläche gekratzt zu haben. Daher zunächst nur eine Aufstellung der Dinge, die ich bislang herausgefunden habe.

Wozu OASIS verwendet wird habe ich in dem Artikel Access-Quellcode verwalten beschrieben. Damit das möglich ist, muss das Add-In natürlich aktiv sein. Das erkennt man z.B. an dem eigenen Ribbon in der Access-Oberfläche oder den zusätzlichen Symbolen im VB-Editor. Diese Elemente werden von dem Add-In bereitgestellt. Wenn es nicht aktiv ist, fehlen sie natürlich.

OASIS-Ribbon in Access 2016

OASIS-Symbolleiste im VB-Editor

Das Problem ist nun: OASIS ist nach dem Beenden und erneuten Starten von Access verschwunden. Es ist natürlich weiterhin installiert, doch Access zeigt nichts davon an. Das ist reproduzierbar mit OASIS 3.5.20.734 in Access 2013 (Office Professional Plus, 32bit) auf einem Windows 10-Rechner (64bit) im Enterprise-Umfeld. Als mögliche Ursache käme hier also die Policy (Gruppenrichtlinie) in Frage (siehe zum Beispiel hier). Ich besitze auf dem Rechner jedoch lokale Adminrechte, die Installation von OASIS war kein Problem. Auch können keineswegs alle Add-Ins gesperrt sein, denn MZ-Tools läuft dauerhaft (allerdings wird dieses Add-In etwas anders in der Registry verankert).

Dieses Problem tritt übrigens bei mir nicht auf (OASIS-Version wie oben):

  • mit Access 2016 (Office Professional Plus, 32bit) unter Windows 10 (32bit, v1709, Build 16299.492, läuft in VirtualBox)
  • mit Access 2016 (Office Professional Plus, 32bit) unter Windows 10 (64bit, v1903, Build 18362.418, läuft in nativem PC)

Die weitere Analyse ergab, dass Access nach erneutem Start dieses Add-In in die Gruppe “Inaktive Anwendungs-Add-Ins” einsortiert hat. Diese Einordnung kann man in Access über “Datei / Optionen / Add-Ins” überprüfen.

So ist es richtig: OASIS ist aktiv

In Outlook AddIns dauerhaft aktivieren fand ich den Hinweis, dass man in der Registry das Ladeverhalten des Addins beeinflussen kann. Die Einstellung “LoadBehavior” soll auf dem Wert 3 stehen. Eine solche Einstellung gibt es auch bei Access-Addins, jedoch ist diese (vermutlich vom Setup her) bereits korrekt gesetzt.

Interessant ist, dass das Add-In als “inaktiv” eingestuft wird, keineswegs als “deaktiviert”, wie es z.B. nach einem Absturz geschieht! Zur Unterscheidung zwischen aktiv und inaktiv könnte es eine Registry-Eintragung im Stile “letzte Verwendung” geben. Es wäre sinnvoll, lange nicht benutzte Add-Ins automatisch zu inaktivieren, um Ladezeit und Speichernutzung zu sparen. Eine Einstellung, die hinreichend ähnlich klingt, ist HKCU\Software\Microsoft\Office\16.0\Access\AddInLoadTimes. Einen Zusammenhang mit dem beschriebenen Verhalten hat auch Timo Notheisen in Microsofts Techcommunity beschrieben. Und in der Tat verändert sich der Registryeintrag nach jedem Start in einer bestimmten Weise:

Registry-Key AddInLoadTimes für verschiedene Aufrufe von Access

Abgesehen von  der anfänglichen Viergruppe 05 00 00 00 scheinen auch die weiteren Werte zum einen in Vierergruppen organisiert zu sein, und diese werden nach dem FIFO-Prinzip “durchgeschoben”. So bleiben immer nur die letzten 5 Gruppen erhalten. Damit repräsentiert die erste Vierergruppe vielleicht einfach nur eben diese 5: Anzahl - Wert - Wert - Wert - Wert - Wert

Wenn das stimmt, haben wir auch gleich einen Hinweis auf die Codierung. Interpretiert man die Bytes einer Gruppe nämlich als Little-Endian-codiert, so ergeben sich aus den Bytefolgen wie z.B. 00 00 04 a4 Dezimalzahlen im Bereich 922 bis 3086. Unterstellt man ferner, dass dies vielleicht Millisekunden sein könnten, dann könnten die einzelnen Werte nicht die letzte Verwendung, sondern einfach die Ladezeiten des Add-Ins sein – “add-in load times”. Die oben genannten Werte habe ich auf meinem eigenen System ermittelt, wo Windows 10 in einer virtuellen Maschine läuft, die über den Router direkten Zugriff auf das Internet hat. Das ist im Firmenumfeld möglicherweise anders. Hier habe ich die folgenden Werte gefunden:

05 00 00 00 b7 06 00 00 3c 03 00 00 27 04 00 00 e2 04 00 00 94 04 00 00

Das ergibt im Vergleich leider nicht das vermutete Bild:

Add-In Load Times

Die Umrechnung von Hexadezimal in Dezimal kann in Excel übrigens leicht mit der Funktion HEXINDEZ erledigt werden.

Vorläufiges Fazit

Mit den Load Times hat es offenbar nichts zu tun. Auch die Löschung des Schlüssels in der Registry führte zu keinem anderen Ergebnis. Dabei war noch auffällig, dass der Schlüssel nicht erneut angelegt wird!

Update 1: Ein (wiederholtes?) De- und Installieren des Add-Ins hat vorerst geholfen. Mal sehen, wie lange es anhält :-)

Update 2: Inzwischen ist mehr als 1 Jahr vergangen, und der beschriebene Effekt hat sich nicht wieder gezeigt. Was auch immer es war, die alte Windows-Regel “einfach neu installieren” scheint auch hier geholfen zu haben :-)

Ähnliche Artikel:

1 Kommentar

  1. Ich habe einen längeren Text mit Erläuterungen von gängigen Problemen und Lösungen bei .NET COM-Add-ins in Access (und anderen Office Anwendungen) geschrieben.
    https://accessdevtools.com/blog/microsoft-office-com-add-in-not-loading/
    OASIS ist zwar kein .NET Add-in, aber einige der aufgeführten Szenarios sind trotzdem zutreffend.

Schreibe einen Kommentar zu Philipp Antworten abbrechen

Deine Email-Adresse wird nicht veröffentlicht.

sechzehn − zehn =