Was ist das WizHook-Objekt? |
Bereits seit der ersten Version ist Microsoft Access ist sehr erfolgreich im Markt für Desktop-Datenbanken. Ein wesentlicher Faktor dieses Erfolges ist es, dass auch unerfahrene Anwender sehr schnell ein ansprechendes Ergebnis erzielen. Dabei wird der Anwender von Assistenten - so genannten Wizards - unterstützt.
Ein Teil der Funktionalität der Oberfläche von Access findet sich in den Dateien "utility.mda", "acwzdat.mdt", "acwzusr.mdt", "acwzlib.mde", "acwzmain.mde" und "acwztool.mde". Diese hat Microsoft zum Teil freigegeben so dass jeder, der sich dafür interessiert, anschauen kann, wie die Assistenten funktionieren.
Ein anderer Teil der Funktionalität der Oberfläche von Access findet sich im Wizhook-Objekt. Dieses Objekt stellt einiges an Basisfunktionalität bereit und ist nicht dokumentiert (siehe unten).
Wie findet man das WizHook-Objekt? |
Um an das WizHook-Objekt mit seinen Eigenschaften und Methoden heranzukommen muss man in den VBA-Editor wechseln.
Als nächstes muss der Objektkatalog aktiviert werden. Dazu verwendet man den Befehl "Ansicht" / "Objektkatalog". Als Shortcut kann man auch die F2-Taste verwenden.
Im Objektkatalog werden alle Objekte mit ihren Eigenschaften und Methoden dargestellt. Ein Objekt mit dem Namen "WizHook" ist aber nicht zu finden.
Um das WizHook-Objekt sichtbar zu machen muss man die verborgenen Elemente anzeigen. Dazu klickt man mit der rechten Maustaste irgendwo, wo man keine Auswahl trifft. Aus dem Kontextmenü wählt man "Verborgene Elemente anzeigen". Jetzt werden die versteckten Objekte eingeblendet. Ganz am Ende der Liste findet sich auch das WizHook-Objekt.
Was bedeutet undokumentiert? |
Beim Einsatz des WizHook-Objekts und seiner Funktionen ist zu beachten, dass das WizHook-Objekt nicht offiziell dokumentiert ist. Das bedeutet, dass es keine Unterstützung von Seiten von Microsoft gibt. Sie finden keine offizielle Dokumentation. Auch eine Hilfe zum WizHook-Objekt gibt es nicht. (Deshalb gibt es ja dieses Dokument ;-))
Aus dem Umstand, das Microsoft das WizHook-Objekt nicht dokumentiert hat, ergibt sich das Risiko, dass in einer zukünftigen Version die Eigenschaften und Methoden des Objekts geändert werden. Es kann auch passieren, dass eine Eigenschaft oder Methode nicht mehr implementiert ist. Der von Ihnen erstellte Code ist dann u. U. nicht mehr lauffähig oder muss ggfs. aufwändig angepasst werden.
Bei der Verwendung des Wizhook-Objekts ist Vorsicht geboten. Wenn Sie einen Parameter falsch übergeben kann es sein, dass Access komplett abstürzt. Auch dies ergibt sich aus der Tatsache, dass das WizHook-Objekt nicht dokumentiert ist. Die Funktionen sind nicht für die Allgemeinheit implementiert worden. Vielmehr wird davon ausgegangen, dass der Programmierer weiß, was er tut.
Trotz all dieser Risiken erscheinen manche Funktionen sehr reizvoll. Man muss sich dieser Risiken bei der Verwendung des WizHook-Objekts bewusst sein. Auf jeden Fall sollte man durch geeigneten Code sicherstellen, dass die übergebenen Parameter in den jeweiligen Gültigkeitsbereich passen.
Abschliessend möchte ich nochmals betonen: Der Einsatz erfolgt auf eigenes Risiko.
Das wichtigste: Der Key |
Es haben schon viele Programmierer das WizHook-Objekt mit seinen Eigenschaften und Methoden im Objekt-Katalog entdeckt. Beim Einsatz wurde viele jedoch enttäuscht. Die Funktionen des WizHook-Objekts schienen nicht zu funktionieren. Es passierte einfach nicht.
Der Schlüssel zum WizHook-Objekt ist der Key. Damit wird das WizHook-Objekt aktiviert. Der Key muss während einer Access-Sitzung nur einmal eingegeben werden und schon stellt das WizHook-Objekt seine Eigenschaften und Methoden während der gesamten Laufzeit von Access zur Verfügung.
Der Wert, der der Eigenschaft "Key" übergeben werden muss, lautet: 51488399.
Es gibt verschiedene Strategien, um den Key zu setzen:
Ich persönlich bevorzuge den dritten Weg. Der Code wird dadurch klarer und verständlicher. Der Key wird an der Stelle gesetzt, an der er benötigt wird. Auf das (überflüssige) Zurücksetzen des Keys wird verzichtet.
Übersicht der Funktionen |
Anregungen und Ergänzungen |
Dieses Dokument lebt. Es ist Stück für Stück entstanden - und es ist sicher noch nicht vollständig.
Anregungen und Ergänzungen zu diesem Dokument sind immer willkommen. Am besten senden Sie mir ein E-Mail.
Auf diesem Weg kann das Wissen um das WizHook-Objekt in Access nach und nach ergänzt und vervollständigt werden.
Ergänzungen 2022/2023 |
Die bisherige Dokumentation zum Wizhook-Objekt basiert auf meinen Recherchen aus den Jahren 2005 und 2006. Im Herbst 2022 hat mich Colin Riddington angesprochen. Colin hat das Wizhook-Objekt für sich entdeckt und ebenfalls auf seiner Webseite einen ausführlichen Artikel dazu bereitgestellt:
https://isladogs.co.uk/wizhook/index.html
Im Rahmen seiner Recherchen und seiner Arbeit hat er die hier veröffentliche Beispieldatenbank gefunden und angefragt, ob er diese überarbeiten darf.
Eine deutlich modernere Version ist seither auf Colins Seiten zu finden. Sie können diese Datenbank aber auch gleich hier herunterladen: Beispieldatenbank (accdb)
Links und andere Quellen |
Wenn man mit dem Begriff "Wizhook" bei www.google.de eine Suche startet, dann findet man nur ca. 50 Treffer. (Stand 05/2005)
Die meisten Treffer verweisen auf Webseiten in asiatischer oder russischer Sprache. Andere Webseiten sind schlicht nicht mehr verfügbar.
Es finden sich auch einige Treffer in Forumsdiskussionen. Dabei geht es meistens darum, dass es das Wizhook-Objekt gibt. Inhaltliche Beschreibungen sind selten.
Hier ist eine Liste mit meinen bevorzugten Links: