{"id":55000358,"date":"2006-06-01T00:00:00","date_gmt":"2020-05-06T15:18:22","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=358"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"WizHook__versteckte_Features_in_Access","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/WizHook__versteckte_Features_in_Access\/","title":{"rendered":"WizHook &#8211; versteckte Features in Access"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg05.met.vgwort.de\/na\/a9c45b75e974490f941fc99e9b33d06b\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<h3>Zusammenfassung<\/h3>\n<p>Lernen Sie die versteckten Funktionen des WizHook-Objekts kennen.<\/p>\n<h3>Techniken<\/h3>\n<p>VBA<\/p>\n<h3>Voraussetzungen<\/h3>\n<p>Access 2000 und h&ouml;her<\/p>\n<h3>Beispieldatei<\/h3>\n<p>wizhook_demo.mdb<\/p>\n<h3><\/h3>\n<p><b>Sascha Trowitzsch, Berlin<\/b><\/p>\n<p><b>Der Funktionsumfang von Access ist relativ beschr&auml;nkt &#8211; zumindest wenn man nur die Bordmittel betrachtet. Mit den zahlreichen externen Bibliotheken und ActiveX-Steuerelementen l&auml;sst sich Access allerdings fast beliebig erweitern. Manchmal muss man aber gar nicht in die Ferne schweifen: Das WizHook-Objekt liefert einige n&uuml;tzliche Funktionen &#8211; allerdings muss man die erst einmal finden.<\/b><\/p>\n<p>Der Objektkatalog von VBA &#8211; zu erreichen &uuml;ber den VBA-Editor und das Men&uuml; Ansicht\/Objektkatalog oder die Taste F2 &#8211;  listet alle Bibliotheken eines VBA-Projekts mitsamt ihren Klassen, Eigenschaften und Methoden auf.<\/p>\n<p>Allerdings k&ouml;nnen Typbibliotheken einzelne Elemente als &#8222;hidden&#8220; deklarieren &#8211; sie erscheinen dann zun&auml;chst nicht im Objektkatalog. Im Kontextmen&uuml; des Katalogs gibt es jedoch einen Eintrag, der es erlaubt, auch diese versteckten Objekte und Methoden sichtbar werden zu lassen (siehe Bild 1).<\/p>\n<p><IMG height=\"413\" src=\"..\/fileadmin\/_temp_\/{A7555BBB-9FE2-4328-8A45-7ADDDB238795}\/pic001.png\" width=\"431\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Anzeigen verborgener Elemente im Objektkatalog<\/span><\/b><\/p>\n<p>Die versteckten Funktionen werden nach Aktivierung dieses Eintrags in grauer Schrift angezeigt &#8211; ein erster Blick in den Objektkatalog offenbart f&uuml;r die Access-Bibliothek eine ganze Menge solcher Eintr&auml;ge. Allerdings gibt es keine Dokumentation zu diesen versteckten Klassen und Methoden, also hei&szlig;t es: &#8222;Selbst ist der Entwickler!&#8220; Sofern das Web oder Fachbeitr&auml;ge &#8211; wie dieser &#8211; keinen alternativen Zugang zu Informationen &uuml;ber die versteckten Elemente bieten, bleibt nur der experimentelle Weg.<\/p>\n<p>Microsoft versteckt diese Elemente nicht etwa, weil sie fehlerhaft sind, sondern weil diese Elemente sich gegebenenfalls in neueren Versionen von Access in Funktion oder Syntax &auml;ndern. Datenbanken, die diese undokumentierten Elemente einsetzen, w&uuml;rden dann eventuell mit Folgeversionen von Access nicht mehr stabil laufen. Bisher arbeiten jedoch noch alle betroffenen Funktionen auch in Folgeversionen von Access reibungslos.<\/p>\n<p>Unter den &#8222;ausgegrauten&#8220; Klassen auf der linken Seite des Objektkatalogs findet sich auch das WizHook-Objekt, das eine stattliche Anzahl Methoden bereith&auml;lt.<\/p>\n<p>Lange Zeit hielt sich in Newsgroups die M&auml;r, dass diese Klasse nur ein Dummy sei und die Methoden allesamt ohne Funktion seien. Im Jahre 2001 hat schlie&szlig;lich ein Entwickler enth&uuml;llt, dass ein spezieller Code gesetzt werden muss, um die Methoden freizuschalten.<\/p>\n<p>Es ist nicht bekannt, ob dieser Code experimentell ermittelt oder durch eine undichte Stelle bei Microsoft nach au&szlig;en gelangt ist.<\/p>\n<p>Der Schl&uuml;ssel zu den WizHook-Funktionen ist die Eigenschaft Key der Klasse. Die folgende Zeile schaltet die Funktionen des WizHook-Objekts frei:<\/p>\n<pre>WizHook.Key = 51488399  ''magic number<\/pre>\n<p>Das Setzen dieses Objekts schaltet die WizHook-Elemente f&uuml;r die Dauer einer Access-Sitzung frei. Da Variablen beim Auftreten nicht behandelter VBA-Fehler jedoch ihren Inhalt verlieren k&ouml;nnen, hat es sich bew&auml;hrt, diesen Key vor jedem Aufruf einer Funktion zu setzen &#8211; am besten am Anfang einer Prozedur.<\/p>\n<p>Die folgenden Abschnitte erl&auml;utern eine Auswahl der interessantesten WizHook-Funktionen, mit denen sich t&auml;glich vorkommende Aufgaben leicht l&ouml;sen lassen (es gibt allerdings noch eine ganze Reihe Methoden, deren Funktionsweise noch nicht hinreichend erforscht wurde). Viele WizHook-Funktionen haben &uuml;brigens mit Makros zu tun. Diesen Teil behandelt Access im Unternehmen in einer der folgenden Ausgaben.<\/p>\n<p>Die Funktionen sind in der Beispieldatenbank wizhook_demo.mdb im Modul mdlWizhook zusammengefasst und lassen sich zum gr&ouml;&szlig;ten Teil vom Formular frmWizhook aus aufrufen. Der Name &#8222;WizHook&#8220; ist wohl auf die Entstehung dieser Bibliothek zur&uuml;ckzuf&uuml;hren: Die Assistenten von Access 97 (Wizards), die selbst ebenfalls in VBA programmiert sind, enthalten &auml;hnliche Funktionen, die aber in gr&ouml;&szlig;erem Umfang API-Aufrufe auf die msaccess.exe selbst absetzen.<\/p>\n<p>Microsoft hat sich bei Access 2000 dazu entschlossen, viele dieser API-Aufrufe in COM-Methoden umzuwandeln und in das Objektmodell von Access zu &uuml;bernehmen.<\/p>\n<p>Eine h&auml;ufig nachgefragte Funktion ist das &ouml;ffnen von Dialogen zur Datei- oder Verzeichnisauswahl. Access 2000 hat dies nicht im Angebot und das FileDialog-Objekt (ab Access 2002) ist etwas umst&auml;ndlich zu programmieren.<\/p>\n<p>Man findet daher meist API-basierte L&ouml;sungen, die ein umfangreiches Modul ben&ouml;tigen. Dabei lassen sich die Dialoge mit der WizHook-Methode GetFileName mit nur einer einzigen Code-Zeile realisieren: <\/p>\n<pre>WizHook.GetFileName(FensterHandle, _    \"Microsoft Access\", _    \"Titel\", _\r\n    \"&ouml;ffnenButtonText\", _    Ergebnisvariable, _    \"c:\\Startverzeichnis\", _\r\n    \"Dateiendungsfilter\", _\r\n    FilterIndex, _\r\n    ErscheinungsbildIndex, _\r\n    Dialogstil, True)<\/pre>\n<p>Die Parameter im Einzelnen:<\/p>\n<p>Als Fensterhandle k&ouml;nnen Sie ohne Bedenken den Wert 0 angeben, da dieser Parameter keine erkennbare Funktion besitzt.<\/p>\n<p>Die Bezeichnung Microsoft Access k&ouml;nnen Sie genauso gut durch eine andere ersetzen.<\/p>\n<p><b>Quellcode 1: Mehrere Dateinamen bei Mehrfachauswahl im Dateiauswahldialog erhalten<\/b><\/p>\n<pre>Dim arrFiles() As String\r\nDim sResult As String\r\nDim ret As Long, i As Long\r\nWizHook.Key = 51488399\r\nret = Wizhook.GetFileName(0&, \"\", \"\", \"&ouml;ffnen\", sResult, \"\", _     \"(*.*)\", 0, 0, 72, True)\r\nIf ret = 0 Then\r\n    arrFiles = Split(sResult, vbTab)\r\n    For i = 0 To Ubound(arrFiles)\r\n        Debug.Print arrFiles(i)\r\n    Next i\r\nEnd If<\/pre>\n<p>F&uuml;r Titel setzen Sie einen String ein, der dann in der Titelzeile des Auswahldialogs erscheinen wird.<\/p>\n<p>&ouml;ffnenButtonText ist ein String, der die Beschriftung des Auswahl-Buttons im Dialog bestimmt. Hier d&uuml;rfte zumeist &#8222;&ouml;ffnen&#8220; oder &#8222;Ausw&auml;hlen&#8220; zum Einsatz kommen.<\/p>\n<p>Ergebnisvariable ist der wichtigste Parameter, denn darin legt der Dialog beim Schlie&szlig;en das Ergebnis ab. Die Variable sollte vom Datentyp String sein.<\/p>\n<p>Startverzeichnis ist ein String mit Pfadangabe. Dieses Verzeichnis wird beim &ouml;ffnen des Dialogs voreingestellt.<\/p>\n<p>Dateiendungsfilter ist ein String, der eine Verkettung von Filtern zul&auml;sst, die dann in der Auswahl-Combobox des Dialogs enthalten sind. Ein einzelner Filter in diesem String baut sich dabei so auf:<\/p>\n<pre>\"Filterbezeichnung (*.Endung1;*.Endung2)\"<\/pre>\n<p>Beispiel:<\/p>\n<pre>\"Grafikdateien (*.bmp;*.gif;*.jpg)\"<\/pre>\n<p>Wichtig ist die Klammer um die Dateiendungen, die Access zum Ermitteln der Datei ben&ouml;tigt. Die einzelnen Endungen k&ouml;nnen Sie durch Semikolons oder Kommas trennen. Soll die Combobox des Dialogs mehrere Eintr&auml;ge zur Auswahl bereithalten, so m&uuml;ssen die einzelnen Filterstrings durch das Pipe-Zeichen (|) getrennt werden:<\/p>\n<pre>\"Word-Dokumente (*.doc,*.rtf)|Excel-Dokumente (*.xls)\"<\/pre>\n<p>Welcher Filter dann beim &ouml;ffnen des Dialogs voreingestellt sein wird, gibt der Parameter FilterIndex an &#8211; der Wert 0 entspricht dabei dem ersten Eintrag. ErscheinungsbildIndex ist eine Zahl (Datentyp: Long), die angibt, wie der Dialog aussehen soll: Ein Wert kleiner oder gleich 0 liefert eine &#8222;Shellview&#8220; in Detailansicht (Liste); bei 1 oder 2 ist die Dateivorschau angeschaltet; bei 3 erhalten Sie eine &#8222;Shellview&#8220; als Liste (&#8222;Kleine Symbole&#8220;).<\/p>\n<p><!--30percent--><\/p>\n<p>Dialogstil ist eine Summe von Flags, die das Verhalten und das Aussehen des Dialogs bestimmen. Es w&uuml;rde hier zu weit f&uuml;hren, alle Flag-Kombinationen zu beschreiben. Normalerweise verwendet man die Zahl 64. Der Wert 72 erlaubt die Mehrfachauswahl von Dateien.<\/p>\n<p>Beim Klick auf die Abbrechen-Schaltfl&auml;che des Dialogs liefert die Funktion GetFileName einen Wert kleiner 0 (beispielsweise -302). Bei Auswahl mindestens einer Datei liefert die Funktion den Wert 0 zur&uuml;ck. <\/p>\n<p>Beim Einsatz der Mehrfachauswahl trennt die Funktion die in der Ergebnisvariablen enthaltenen Dateinamen durch das Tabulator-Zeichen (Chr(9)). Trennen kann man diese etwa mit der VBA-Funktion Split (siehe Quellcode 1).<\/p>\n<p>Sie sehen: Die WizHook-Funktion GetFileName ist eine sehr flexible M&ouml;glichkeit zur Anzeige von Dateiauswahldialogen. So flexibel, dass man sie auch f&uuml;r einen Verzeichnisauswahldialog missbrauchen kann: Dazu muss lediglich der Parameter ErscheinungsbildIndex auf 3 gesetzt werden und der Parameter Dialogstil auf 96. Das bewirkt, dass keine Dateien mehr im Dialog angezeigt werden, sondern nur noch Verzeichnisse. Das Aussehen dieses Dialogs weicht zwar vom entsprechenden Standarddialog von Windows ab, aber wenn man sich dadurch ellenlangen API-Code ersparen kann &#8230;<\/p>\n<p>Schlie&szlig;lich gibt es noch eine spezielle WizHook-Methode, um Bilddateien auszuw&auml;hlen (in einer Zeile):<\/p>\n<pre>WizHook.OpenPictureFile Ergebnisvariable, 0<\/pre>\n<p>K&uuml;rzer geht&#8220;s nicht! Der damit aufgerufene Auswahl-Dialog entspricht im Erscheinungsbild dem &uuml;blichen &ouml;ffnen-Dialog. Die Auswahl-Combobox enth&auml;lt aber bereits eine Reihe Filter f&uuml;r Grafikdateien. Nachteilig ist nur, dass die Vorschau im Dialog nicht voreinstellbar ist.<\/p>\n<p>Wer wei&szlig;, wie viele Entwickler schon eine Hilfsfunktion zum Trennen von Verzeichnis und Dateiname bei Pfadangaben programmiert haben &#8211; dabei liefert Access diese Funktion und weitere frei Haus. Sehen Sie einfach selbst!<\/p>\n<h3>Dateinamen splitten<\/h3>\n<p>Kaum eine Datenbank kommt ohne Funktionen zum Extrahieren einzelner Pfadteile aus vollen Dateinamen aus. Mal ist das Verzeichnis abzuleiten, mal die Endung und manchmal der Laufwerksbuchstabe. Statt f&uuml;r jede dieser Operationen eine eigene Routine in ein Modul zu schreiben, kann man sich auch mit einer einzigen Zeile behelfen &#8211; der WizHook-Methode SplitPath:<\/p>\n<pre>WizHook.SplitPath VollerDateipfad, _    ErgebnisLaufwerk, _\r\n    ErgebnisVerzeichnis, _\r\n    ErgebnisDateiname, _    ErgebnisDateiendung<\/pre>\n<p>In VollerDateipfad &uuml;bergibt man der Methode den kompletten Dateinamen wie beispielsweise c:\\windows\\system32\\advapi.dll.<\/p>\n<p>Die mit dem Pr&auml;fix &#8222;Ergebnis&#8220; versehenen Parameter sind vorher deklarierte Ergebnisvariablen vom Typ String. Der obige Beispielaufruf w&uuml;rde zur R&uuml;ckgabe der folgenden Werte dienen:<\/p>\n<pre>ErgebnisLaufwerk = \"c:\"\r\nErgebnisVerzeichnis = \\windows\\system32\\\"\r\nErgebnisDateiname = \"advapi\"\r\nErgebnisDateiendung = \".dll\"<\/pre>\n<p>Die Methode funktioniert auch mit UNC-Pfaden, wobei die Funktion dann als Laufwerk einen Leerstring zur&uuml;ckliefert.<\/p>\n<h3>Vorhandensein einer Datei pr&uuml;fen<\/h3>\n<p>Mit der Methode FileExists kann man &uuml;berpr&uuml;fen, ob eine im Parameter &uuml;bergebene Datei existiert oder nicht:<\/p>\n<pre>WizHook.FileExists(\"c:\\dateiname.xyz\")<\/pre>\n<p>Sie gibt den Wert True zur&uuml;ck, falls die Datei vorhanden ist. Man k&ouml;nnte das auch mit der VBA-Funktion Dir realisieren.<\/p>\n<p>Die Wizhook-Methode hat aber den Vorteil, dass grunds&auml;tzlich Fehlermeldungen unterbleiben, wenn beispielsweise unrealistische Laufwerksbuchstaben &uuml;bergeben werden, die bei der Dir-Funktion zum Ausl&ouml;sen eines Fehlers f&uuml;hren k&ouml;nnen.<\/p>\n<p>Das Sortieren von Textlisten ist zweifellos eine h&auml;ufig anzutreffende Aufgabe in Datenbanken.<\/p>\n<p>Dies geschieht im Allgemeinen jedoch im Zusammenhang mit Abfragen, Tabellen und Recordsets. Seltener hat man Textlisten in Form von Arrays vor sich.<\/p>\n<p>Sollte das aber doch der Fall sein und eine alphabetische Sortierung gefordert sein, steht man oft vor dem Problem: Wie geht das denn vonstatten<\/p>\n<p>Es gibt allerlei Algorithmen von Bubble- &uuml;ber Heap- zu Quicksort, um dies zu bewerkstelligen. Und alle ben&ouml;tigen eine ausgewachsene Prozedur. Da trifft es sich gut, dass das WizHook-Objekt eine Sortiermethode SortStringArray bereith&auml;lt, die die Aufgabe wiederum in einer Zeile erledigt:<\/p>\n<pre>WizHook.SortStringArray MyStringArray<\/pre>\n<p><b>Quellcode 2: Dateien per Dateidialog ausw&auml;hlen, sortieren und als String zur&uuml;ckgeben in wenigen Zeilen<\/b><\/p>\n<pre>Function WZHOpenMultiFileNames() As String\r\n    Dim ret As Long\r\n    Dim sResult As String\r\n    Dim arrFiles() As String\r\n    WizHook.Key = 51488399\r\n    ret = Wiz-Hook.GetFileName(Application.hWndAccessApp, _        \"Microsoft\", \"Datei ausw&auml;hlen:\", \"&ouml;ffnen\", sResult, _        CurrentProject.Path, \"Alle Dateien (*.*)\", 0&, 0&, _        72, True)\r\n    If ret = 0 Then\r\n        ''Ergebnisstring in String-Array umwandeln\r\n        arrFiles = Split(sResult, vbTab)         \r\n        ''String-Array sortieren\r\n        WizHook.SortStringArray arrFiles    \r\n        ''...und wieder in einen String umwandeln, nur diesmal        ''semikolonsepariert\r\n       WZHOpenMultiFileNames = Join(arrFiles, \";\")\r\n    End If\r\nEnd Function<\/pre>\n<p>Dieser Aufruf sortiert das (eindimensionale) String-Array MyStringArray in aufsteigender Reihenfolge.<\/p>\n<p><IMG height=\"506\" src=\"..\/fileadmin\/_temp_\/{A7555BBB-9FE2-4328-8A45-7ADDDB238795}\/pic002.png\" width=\"461\" border=\"0\"><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Sortieren der W&ouml;rter eines Textes mit der WizHook.SortStringArray-Methode<\/span><\/b><\/p>\n<p>Ein Beispiel f&uuml;r den praktischen Einsatz der Methode zeigt Quellcode 2.<\/p>\n<p>Hier wird zun&auml;chst mit der WizHook-Funktion GetFileName ein Dateiauswahldialog angezeigt, der die Mehrfachauswahl von Dateien erlaubt.<\/p>\n<p>Das Ergebnis ist ein durch das Tabulator-Zeichen separierter String. Dieser wird zuerst mit Split in ein String-Array &uuml;berf&uuml;hrt, das anschlie&szlig;end mittels SortStringArray sortiert wird. Das Array wird dann wieder zu einem String zusammengesetzt, wobei als Trennzeichen das Semikolon verwendet wird. <\/p>\n<p>Dieser Ergebnis-String kann dann zum Beispiel zum Bef&uuml;llen einer Listbox im Modus &#8222;Werteliste&#8220; verwendet werden, um die ausgew&auml;hlten Dateien alphabetisch sortiert darzustellen.<\/p>\n<p>In der Demodatenbank findet sich ein weiteres, eher spielerisches Beispiel f&uuml;r den Einsatz der Methode: Im Formular frmWizSort k&ouml;nnen Sie in ein Textfeld eine Geschichte oder sonstigen Text eingeben.<\/p>\n<p>W&auml;hrend des Schreibens wird der Text fortlaufend automatisch untersucht und in einzelne W&ouml;rter getrennt, die in der rechten Listbox erscheinen (siehe Bild 2). Dazu kommt im Formular &uuml;brigens eine benutzerdefinierte Funktion namens SplitMult zur Anwendung, die sicher auch f&uuml;r andere Zwecke n&uuml;tzlich ist.<\/p>\n<p>Ein Klick auf die Schaltfl&auml;che Nun W&ouml;rter sortieren sortiert die in der Liste enthaltenen W&ouml;rter.<\/p>\n<p>Zuweilen kommt es vor, dass man gerne w&uuml;sste, wie breit und hoch sich ein Text in einer bestimmten Schriftart auf einem Formular, beispielsweise in einer Textbox oder in einem Label, abbilden wird, etwa, um deren Abmessungen entsprechend anzupassen.<\/p>\n<p>In Access-Berichten gibt es zu diesem Zweck die Funktionen Report.TextWidth und Report.TextHeight. F&uuml;r Formulare und andere Objekte sucht man das vergebens. Hier hilft wieder WizHook, das zudem mit der Methode TwipsFromFont noch mehr Einstellm&ouml;glichkeiten vorh&auml;lt als seine Kollegen aus dem Report-Objekt:<\/p>\n<p><IMG height=\"492\" src=\"..\/fileadmin\/_temp_\/{A7555BBB-9FE2-4328-8A45-7ADDDB238795}\/pic003.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Das Formular frmWizHook enth&auml;lt einige Beispiele f&uuml;r den Einsatz der Methoden der WizHook-Klasse.<\/span><\/b><\/p>\n<pre>WizHook.TwipsFromFont(FontName, _\r\n    Fontgr&ouml;&szlig;ePunkt, _\r\n    Schriftbreite, _\r\n    IstKursiv, _\r\n    IstUnterstrichen, _\r\n    Zeichenzahl, _\r\n    Text, _\r\n    ZeichenMaximal, _\r\n    ErgebnisH&ouml;he, _\r\n    ErgebnisBreite)<\/pre>\n<p>Die Parameter sind weitgehend selbsterkl&auml;rend. Breite und H&ouml;he des &uuml;bergebenen Textes, der auch Zeilenumbr&uuml;che enthalten darf, speichert die Methode in den Variablen ErgebnisH&ouml;he und ErgebnisBreite in der Einheit Twips.<\/p>\n<p>Schriftbreite ist der Parameter f&uuml;r die Strichst&auml;rke der Schriftart. F&uuml;r Normal ist hier 400 einzusetzen, f&uuml;r Fett 700. Zeichenzahl und ZeichenMaximal lassen Sie unber&uuml;cksichtigt und setzen beide Werte auf 0. <\/p>\n<p>Im Formular frmWizhook der Beispieldatenbank wird die Methode demonstriert (siehe Bild 3):<\/p>\n<p>In ein Textfeld kann beliebiger Text eingegeben werden. Mit einem Klick auf die Schaltfl&auml;che Abmessungen eines Textes wird dann die Ausdehnung dieses Textes gem&auml;&szlig; der Schriftarteinstellungen des Feldes ermittelt und die Textbox damit in ihrer Gr&ouml;&szlig;e exakt angepasst.<\/p>\n<p>Man kann diese Funktion also zum Beispiel dazu einsetzen, die optimale  Breite von Spalten einer Tabelle (DataSheet) aus dem Inhalt der Datens&auml;tze zu errechnen und anzupassen (ColumnWidth).<\/p>\n<p>Ein entsprechendes Beispiel im Formular frmWizhook zeigt sich, wenn Sie den Button Spaltenbreite anpassen anklicken.<\/p>\n<p>Ein anderes Beispiel der Demodatenbank befindet sich im Modul mdlFontWidth. Dort k&ouml;nnen Sie die Prozedur EnumFonts aufrufen. Sie ermittelt f&uuml;r alle im System installierten Schriften die Ausdehnung eines Beispielsatzes in unterschiedlichen Schriftgr&ouml;&szlig;en und schreibt die Ergebnisse in die Tabelle tblFontExtents. Die Kreuztabellenabfrage qryFontWidth gibt das Ergebnis ansprechend aus.<\/p>\n<p>Anhand dieser Abfrage l&auml;sst sich dann etwa herausfinden, welche Schriften je nach Schriftgr&ouml;&szlig;e am kleinsten oder gr&ouml;&szlig;ten &#8222;laufen&#8220;. <\/p>\n<p>Die folgenden Methoden sollten zumindest kurz vorgestellt werden:<\/p>\n<li>WizHook.CurrentLangID: Gibt die LanguageID, also die Kennzahl der Sprache des Betriebssystems zur&uuml;ck. F&uuml;r Deutsch ist dies 1031, f&uuml;r Englisch 1033. Andere Werte finden Sie in den Enumerationskonstanten MsoLanguageID der Office-Bibliothek.<\/li>\n<li>WizHook.KeyboardLangID: Diese Anweisung erledigt dasselbe, nur dass hier die Spracheinstellung der angeschlossenen Tastatur ermittelt wird, die unter Umst&auml;nden von der Sprache des Betriebssystems abweichen kann.<\/li>\n<li>WizHook.OfficeAddInDir: Gibt das pers&ouml;nliche Office-Addins-Verzeichnis des angemeldeten Benutzers zur&uuml;ck.<\/li>\n<li>WizHook.AccessUserDataDir: Gibt das pers&ouml;nliche Access-Verzeichnis des angemeldeten Benutzers zur&uuml;ck, das sich in der Regel unterhalb des Verzeichnisses Eigene Dateien des aktuellen Benutzers befindet.<\/li>\n<h3>Zus&auml;tzliche WizHook-Funktionen in Access XP und Access 2003<\/h3>\n<p>Die bisher erw&auml;hnten WizHook-Methoden funktionieren in allen Access-Versionen seit Access 2000.<\/p>\n<p>Unter Access XP und Access 2003 wurden einige neue Methoden eingef&uuml;hrt:<\/p>\n<li>WizHook.WizHelp: Diese Anweisung ruft die Hilfedatei (.chm) mit dem in sHelpfile angegebenen Dateinamen (inklusive Verzeichnis) auf und zeigt die Hilfeseite mit der zugeh&ouml;rigen ContextID an (ist in den meisten F&auml;llen 0). Ein Beispiel f&uuml;r den folgenden Aufruf finden Sie im Formular frmWizhook, wenn Sie dort den Button &#8222;DAO-Hilfedatei aufrufen&#8220; anklicken:<\/li>\n<pre>WizHook.WizHelp sHelpfile, 1, ContextID<\/pre>\n<li>WizHook.GetColumns(sTable): Wird im Parameter sTable der Name einer Tabelle der aktuellen Datenbank angegeben, dann gibt diese Funktion die Namen aller Felder als semikolonseparierten String zur&uuml;ck.<\/li>\n<li>WizHook.GetInfoForColumns(sTable): Diese Funktion arbeitet &auml;hnlich wie die vorherige. Zus&auml;tzlich zu den Feldbezeichnungen werden hier aber noch die Datentypen und die Feldgr&ouml;&szlig;en ausgegeben. Der Ergebnis-String k&ouml;nnte etwa so aussehen:<\/li>\n<pre>\"ID;4;4;Nachname;10;40;Vorname;10;30;\"<\/pre>\n<p>Jeweils drei aufeinander folgende Elemente identifizieren ein Feld. Das erste Feld hat die Bezeichnung &#8222;ID&#8220;. Der Datentyp ist 4. Diese Zahl entspricht dem Datentyp Long. Die Bedeutung dieser Zahlen k&ouml;nnen Sie den Enumerationskonstanten DataTypeEnum  der DAO-Bibliothek im Objektkatalog entnehmen. Die n&auml;chste Zahl (4) gibt die Gr&ouml;&szlig;e dieses Feldes an &#8211; ein Long-Wert belegt beispielsweise 4 Bytes. Sinn macht diese Angabe eigentlich nur f&uuml;r Textfelder; hier gibt die Funktion die maximale Anzahl Zeichen zur&uuml;ck.<\/p>\n<p>Mit den Methoden der versteckten WizHook-Klasse von Access k&ouml;nnen Sie sich die Arbeit erleichtern und einige h&auml;ufig gebrauchte ausprogrammierte Standardroutinen streichen. Gerade die M&ouml;glichkeiten zum Aufruf von Auswahldialogen sparen das eine oder andere Modul ein. Auch Methoden wie TwipsFromFont lassen sich sonst nur mit aufw&auml;ndigem API-Code umsetzen.<\/p>\n<p>Der zweite Teil dieser Beitragsreihe &uuml;ber die WizHook-Klasse in einer der n&auml;chsten Ausgaben von Access im Unternehmen zeigt, wie Sie per VBA Makros analysieren und erstellen k&ouml;nnen. Immerhin fehlt Access eine M&ouml;glichkeit, die enthaltenen Makros per Code aufzulisten &#8211; mit den &uuml;brigen Datenbankobjekten ist dies kein Problem. Die Dokumentation einer Datenbank, die Makros enth&auml;lt, bliebe zum Beispiel ohne Informationen zu den Makros unvollst&auml;ndig.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Der Funktionsumfang von Access ist relativ beschr&auml;nkt &#8211; zumindest wenn man nur die Bordmittel betrachtet. Mit den zahlreichen externen Bibliotheken und ActiveX-Steuerelementen l&auml;sst sich Access allerdings fast beliebig erweitern. Manchmal muss man aber gar nicht in die Ferne schweifen: Das WizHook-Objekt liefert einige n&uuml;tzliche Funktionen &#8211; allerdings muss man die erst einmal finden.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662006,66032006,44000025],"tags":[],"class_list":["post-55000358","post","type-post","status-publish","format-standard","hentry","category-662006","category-66032006","category-VBA_und_Programmiertechniken"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>WizHook - versteckte Features in Access - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/WizHook__versteckte_Features_in_Access\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WizHook - versteckte Features in Access\" \/>\n<meta property=\"og:description\" content=\"Der Funktionsumfang von Access ist relativ beschr&auml;nkt - zumindest wenn man nur die Bordmittel betrachtet. Mit den zahlreichen externen Bibliotheken und ActiveX-Steuerelementen l&auml;sst sich Access allerdings fast beliebig erweitern. Manchmal muss man aber gar nicht in die Ferne schweifen: Das WizHook-Objekt liefert einige n&uuml;tzliche Funktionen - allerdings muss man die erst einmal finden.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/WizHook__versteckte_Features_in_Access\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-06T15:18:22+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg05.met.vgwort.de\/na\/a9c45b75e974490f941fc99e9b33d06b\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"14\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/WizHook__versteckte_Features_in_Access\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/WizHook__versteckte_Features_in_Access\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"WizHook &#8211; versteckte Features in Access\",\"datePublished\":\"2020-05-06T15:18:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/WizHook__versteckte_Features_in_Access\\\/\"},\"wordCount\":2639,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/WizHook__versteckte_Features_in_Access\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/a9c45b75e974490f941fc99e9b33d06b\",\"articleSection\":[\"2006\",\"3\\\/2006\",\"VBA und Programmiertechniken\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/WizHook__versteckte_Features_in_Access\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/WizHook__versteckte_Features_in_Access\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/WizHook__versteckte_Features_in_Access\\\/\",\"name\":\"WizHook - versteckte Features in Access - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/WizHook__versteckte_Features_in_Access\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/WizHook__versteckte_Features_in_Access\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/a9c45b75e974490f941fc99e9b33d06b\",\"datePublished\":\"2020-05-06T15:18:22+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/WizHook__versteckte_Features_in_Access\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/WizHook__versteckte_Features_in_Access\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/WizHook__versteckte_Features_in_Access\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/a9c45b75e974490f941fc99e9b33d06b\",\"contentUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/a9c45b75e974490f941fc99e9b33d06b\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/WizHook__versteckte_Features_in_Access\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WizHook &#8211; versteckte Features in Access\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"WizHook - versteckte Features in Access - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/WizHook__versteckte_Features_in_Access\/","og_locale":"de_DE","og_type":"article","og_title":"WizHook - versteckte Features in Access","og_description":"Der Funktionsumfang von Access ist relativ beschr&auml;nkt - zumindest wenn man nur die Bordmittel betrachtet. Mit den zahlreichen externen Bibliotheken und ActiveX-Steuerelementen l&auml;sst sich Access allerdings fast beliebig erweitern. Manchmal muss man aber gar nicht in die Ferne schweifen: Das WizHook-Objekt liefert einige n&uuml;tzliche Funktionen - allerdings muss man die erst einmal finden.","og_url":"https:\/\/access-im-unternehmen.de\/WizHook__versteckte_Features_in_Access\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-06T15:18:22+00:00","og_image":[{"url":"http:\/\/vg05.met.vgwort.de\/na\/a9c45b75e974490f941fc99e9b33d06b","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"14\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/WizHook__versteckte_Features_in_Access\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/WizHook__versteckte_Features_in_Access\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"WizHook &#8211; versteckte Features in Access","datePublished":"2020-05-06T15:18:22+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/WizHook__versteckte_Features_in_Access\/"},"wordCount":2639,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/WizHook__versteckte_Features_in_Access\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/a9c45b75e974490f941fc99e9b33d06b","articleSection":["2006","3\/2006","VBA und Programmiertechniken"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/WizHook__versteckte_Features_in_Access\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/WizHook__versteckte_Features_in_Access\/","url":"https:\/\/access-im-unternehmen.de\/WizHook__versteckte_Features_in_Access\/","name":"WizHook - versteckte Features in Access - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/WizHook__versteckte_Features_in_Access\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/WizHook__versteckte_Features_in_Access\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/a9c45b75e974490f941fc99e9b33d06b","datePublished":"2020-05-06T15:18:22+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/WizHook__versteckte_Features_in_Access\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/WizHook__versteckte_Features_in_Access\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/WizHook__versteckte_Features_in_Access\/#primaryimage","url":"http:\/\/vg05.met.vgwort.de\/na\/a9c45b75e974490f941fc99e9b33d06b","contentUrl":"http:\/\/vg05.met.vgwort.de\/na\/a9c45b75e974490f941fc99e9b33d06b"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/WizHook__versteckte_Features_in_Access\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"WizHook &#8211; versteckte Features in Access"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000358","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000358"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000358\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000358"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000358"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000358"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}