Startseite > Tipps & Tricks > Wizhook-Objekt
Team-Moeller.de - Datenbankentwicklung und mehr ...

Wizhook-Objekt

WizHook-Objekt

Inhaltsübersicht:

  1. Was ist das WizHook-Objekt?
  2. Wie findet man das WizHook-Objekt?
  3. Was bedeutet undokumentiert?
  4. Das wichtigste: Der Key
5.   Übersicht der Funktionen
6.   Anregungen und Ergänzungen
7.   Ergänzungen 2022/2023
8.   Links und andere Quellen

 

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).

Zurück zur Übersicht
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.

Zurück zur Übersicht
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.

Zurück zur Übersicht
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:

  • Eine Möglichkeit besteht darin, den Key direkt nach dem Start von Access zu setzen. Der Vorteil liegt darin, dass man sich bei der Verwendung der Methoden des WizHook-Objekts nicht mehr um den Key kümmern muss.
  • Eine weitere Möglichkeit besteht darin, den Key direkt vor der Verwendung des WizHook-Objekts zu setzen und ihn direkt nach dessen Verwendung wieder zurück zu setzen.
  • Die dritte Möglichkeit besteht darin, den Key immer direkt vor der Verwendung des WizHook-Objekts zu setzen und auf das Zurücksetzen zu verzichten.

 

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.

Zurück zur Übersicht
Übersicht der Funktionen
Funktion Acc 2000 Acc 2002 Acc 2003 Acc 2007 Acc 2010 
AccessUserDataDir x x x x x
AccessWizFilePath   x x x x
AdpUIDPwd   x x x x
AnalyzeQuery x x x x x
AnalyzeTable x x x x x
ArgsOfActid x x x x x
BracketString x x x x x
CacheStatus *       x x
CloseCurrentDatabase x x x x x
CreateDataPageControl x x x x x
CurrentLangID x x x x x
DbcVbProject x x x x x
EmbedFileOnDataPage * x x x x x
EnglishPictToLocal x x x x x
ExecuteTempImexSpec *       x x
FCacheStatus *       x x
FCreateNameMap *     x x x
FGetMSDE *   x x x x
FileExists x x x x x
FirstDbcDataObject x x x x x
FIsFEWch *   x x x x
FIsPublishedXasTable *         x
FIsValidXasObjectName *         x
FIsXasDb *         x
FullPath x x x x x
GetAccWizRCPath *     x x x
GetAdeRegistryPath *       x x
GetColumns   x x x x
GetCurrentView   x x x x
GetDisabledExtensions *         x
GetFileName x x x x x
GetFileName2   x x x x
GetFileOdso   x x x x
GetImexTblName *       x x
GetInfoForColumns   x x x x
GetLinkedListProperty *       x x
GetObjPubOption *         x
GetScripString x x x x x
GetWizGlob *   x x x x
GlobalProcExists x x x x x
HideDates *   x x x x
IsMatchToDbcConnectString x x x x x
IsMemberSafe *     x x x
IsValidIdent x x x x x
Key x x x x x
KeyboardLangID x x x x x
KnownWizLeaks * x x x x x
LoadImexSpecSolution * x x x x x
LocalFont x x x x x
NameFromActid x x x x x
ObjTypOfRecordSource x x x x x
OfficeAddInDir x x x x x
OpenEmScript *       x x
OpenPictureFile x x x x x
OpenScript x x x x x
ReportLeaksToFile * x x x x x
SaveObject x x x x x
SaveScriptString x x x x x
SetDefaultSpecName *       x x
SetDpBlockKeyInput x x x x x
SetVbaPassword x x x x x
SetWizGlob *   x x x x
SortStringArray x x x x x
SplitPath x x x x x
TableFieldHasUniqueIndex x x x x x
TranslateExpression x x x x x
TwipsFromFont x x x x x
WizCopyCmdbars   x x x x
WizHelp x x x (x) x
WizMsgBox   x x x x
* Es ist mir bisher noch nicht gelungen, diese Funktionen zu dokumentieren.
 
Zurück zur Übersicht
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.

Zurück zur Übersicht
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)

Zurück zur Übersicht
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:

Zurück zur Übersicht
 
 
Downloads: Beispieldatenbank (accdb) / Beispieldatenbank (mdb) / Hilfedatei / Doku als PDF-Datei 

Microsoft MVP - Thomas Möller


02.10.2020:
TM-AbhängigeObjekte
Version 4.03 bereitgestellt.


06.11.2019:
TM VBA-Inspector:
Lösung für Installationsproblem dokumentiert.


06.05.2017:
TM-VBALineNumbers
Version 1.29.01 bereitgestellt.


27.03.2016:
TM VBA-Inspector:
Installationsroutine überarbeitet.


23.05.2014:
TM-RebuildDatabase
Version 1.75 bereitgestellt.


Powered by CMSimple - Template by CMSimple-Styles.com - Autor:Thomas Möller