{"id":55001068,"date":"2017-02-01T00:00:00","date_gmt":"2020-05-14T13:40:39","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1068"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Eigene_Ribbons_ohne_Code","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Eigene_Ribbons_ohne_Code\/","title":{"rendered":"Eigene Ribbons ohne Code"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg09.met.vgwort.de\/na\/07f008cfa1ef4fe9a2f92af54dad4db6\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Zum Gestalten benutzerdefinierter Ribbons f&uuml;r Ihre Access-Anwendung gibt es zwei unterschiedliche L&ouml;sungen. Die eine setzt vollst&auml;ndig auf VBA-Code und die Methode LoadCustomUI, die andere verwendet eine ausgeblendete Tabelle USysRibbons, die Sie  jeweils mit den XML-Auszeichnungen f&uuml;r die Anpassungen versehen. Dass jedoch auch noch eine dritte L&ouml;sung existiert, ist weitgehend unbekannt.<\/b><\/p>\n<h2>DocUICustomization<\/h2>\n<p>Recherchieren Sie im Netz nach diesem Begriff, so werden Sie nicht viel Erhellendes &uuml;ber ihn finden. Microsoft hat diese Datenbankeigenschaft nicht dokumentiert, und andere Entwickler oder Autoren &uuml;bersahen ihn bisher offenbar. Tats&auml;chlich aber ist er der Schl&uuml;ssel zu unserer L&ouml;sung. Doch fallen wir nicht gleich mit der T&uuml;r ins Haus und sehen uns an, wie sie sich in der Beispieldatenbank <b>RibbonOhne TabelleUndCode.accdb<\/b> pr&auml;sentiert!<\/p>\n<p>Nach ihrem Start zeigt sie sich wie in Bild 1. Hier sind unter dem neuen Tab <b>Aber Hallo!<\/b> einige Buttons und ein einfaches Men&uuml; untergebracht. Die eingebauten <b>Tabs<\/b> von Access sind ausgeblendet. Der Tab <b>Datei<\/b> allerdings ist vorhanden und aktiviert den <b>Backstage<\/b>-Bereich in gewohnter Weise. Beim Klick auf die Elemente der <b>Hallo-Gruppe<\/b> &ouml;ffnen sich Meldungsfenster, damit deutlich wird, dass es sich hier nicht etwa nur um Optik geht, sondern dass wohl funktionierende Callback-Routinen im VBA-Projekt implementiert sind.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_01\/CustRibbonDB.png\" alt=\"Der minimalistische Ribbon der Beispieldatenbank mit einigen Buttons und einem Men&uuml;element\" width=\"650\" height=\"345,9677\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Der minimalistische Ribbon der Beispieldatenbank mit einigen Buttons und einem Men&uuml;element<\/span><\/b><\/p>\n<p><b>Der Code ist hier<\/b> &ouml;ffnet automatisch das Modul <b>mdlOptionen<\/b> der Datenbank und gibt die <b>Click-Callback<\/b>-Prozeduren f&uuml;r die Buttons preis. Irgendwelche Routinen zur Modifikation des Ribbon, etwa per <b>LoadCustomUI<\/b>, werden Sie hingegen vergeblich suchen. Auch eine Tabelle <b>USysRibbons<\/b> fehlt und die anderen Tabellen sind gleichfalls unauff&auml;llig. Wo also versteckt sich der XML-Code f&uuml;r die Anpassungen<\/p>\n<p>Setzen Sie dazu die folgende Zeile im VBA-Direktfenster ab:<\/p>\n<pre>  CurrentDb.Properties(\"DocUICustomization\").Value<\/pre>\n<p>Damit wird tats&auml;chlich der ganze zust&auml;ndige XML-Code herausgegeben! Er unterscheidet sich nicht weiter von den sonst gebr&auml;uchlichen Codes, die Sie in der Tabelle <b>USysRibbons<\/b> oder &uuml;ber <b>LoadCustomUI<\/b> einsetzen. Warum h&uuml;llt sich Microsoft in Schweigen &uuml;ber diese Datenbankeigenschaft Die m&ouml;gliche Erkl&auml;rung folgt.<\/p>\n<h2>Ribbon-Anpassungen &uuml;ber die Oberfl&auml;che<\/h2>\n<p>Seit <b>Access 2010<\/b> haben Sie die M&ouml;glichkeit, f&uuml;r eine Datenbank zumindest der Schnellzugriffsleiste eigene Elemente zu spendieren. &ouml;ffnen Sie dazu bei geladener Datenbank die Optionen von Access und aktivieren den Eintrag <b>Symbolleiste f&uuml;r den Schnellzugriff<\/b>. Im rechten Bereich des Dialogs findet sich nun die Liste der Elemente der Schnellzugriffsleiste. Das Kombinationsfeld dar&uuml;ber zeigt den unscheinbaren Eintrag <b>F&uuml;r alle Dokumente (Standard)<\/b>. Doch hier l&auml;sst sich auch die aktuelle Datenbank <b>F&uuml;r &#8220;xyz.accdb&#8220;<\/b> ausw&auml;hlen! Bei Aktivierung leert sich die Liste, falls die Datenbank noch mit keinen Anpassungen versehen wurde.<\/p>\n<p>Sie k&ouml;nnen nun aus dem Pool der Befehle links der Datenbank Elemente hinzuf&uuml;gen (s. Bild 2). Nach dem Speichern &uuml;ber OK stehen sie in Zukunft immer f&uuml;r diese Datenbank zur Verf&uuml;gung. Andere Datenbanken zeigen sie nicht. Ergo m&uuml;ssen diese Anpassungen irgendwo in der Datenbank abgespeichert sein. Und deren Eigenschaft <b>DocUICustomization<\/b> ist eben dieser Ort.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_01\/QAT_UI.png\" alt=\"Exklusive Schnellzugriffselemente f&uuml;r geladene Datenbank\" width=\"425\" height=\"206,5421\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Exklusive Schnellzugriffselemente f&uuml;r geladene Datenbank<\/span><\/b><\/p>\n<p>Sie k&ouml;nnen sich den Inhalt dieser Eigenschaft nach der manuellen Anpassung mit der erw&auml;hnten VBA-Zeile ausgeben lassen. Der XML-Code f&uuml;r die abgebildete Anpassung sieht so aus, wie in Listing 1. Die Struktur ist die &uuml;bliche, nur dass hier jedem <b>XML-Tag<\/b> der <b>Namespace<\/b> <b>mso<\/b> vorangestellt ist, was, wie wir noch sehen werden, eigentlich &uuml;berfl&uuml;ssig ist.<\/p>\n<pre>&lt;mso:customUI xmlns:mso=\"http:\/\/schemas.microsoft.com\/office\/2006\/01\/customui\"&gt;\r\n     &lt;mso:ribbon&gt;\r\n         &lt;mso:qat&gt;\r\n             &lt;mso:documentControls&gt;\r\n                 &lt;mso:control idQ=\"mso:ManageReplies\" visible=\"true\"\/&gt;\r\n                 &lt;mso:control idQ=\"mso:FileSendAsAttachment\" visible=\"true\"\/&gt;\r\n             &lt;\/mso:documentControls&gt;\r\n         &lt;\/mso:qat&gt;\r\n     &lt;\/mso:ribbon&gt;\r\n&lt;\/mso:customUI&gt;<\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Der XML-Code f&uuml;r die Schnellzugriffsanpassungen aus der Eigenschaft DocUICustomization<\/span><\/b><\/p>\n<p>Es hat den Anschein, als ob Microsoft Entwicklern die Dokumentation dieser Eigenschaft vorenth&auml;lt, damit sie der manuellen Anpassung vorbehalten bleibt.<\/p>\n<h2>Zuweisung an DocUICustomization<\/h2>\n<p>Statt &uuml;ber den <b>Optionen<\/b>-Dialog k&ouml;nnen Sie nun die Anpassung auch per Code vornehmen, indem Sie der Eigenschaft einen eigenen Wert zuweisen. Listing 2 zeigt ein extrem kurzes Beispiel.<\/p>\n<pre><span style=\"color:blue;\">Sub <\/span>ModifyCustUI()\r\n     <span style=\"color:blue;\">Dim <\/span>sXML<span style=\"color:blue;\"> As String<\/span>\r\n     \r\n     sXML = CurrentDb.Properties(\"DocUICustomization\").Value\r\n     sXML = <span style=\"color:blue;\">Replace<\/span>(sXML, \"mso:\", vbNullString)\r\n     CurrentDb.Properties(\"DocUICustomization\").Value = sXML\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 2: Modifizieren des XML-Codes f&uuml;r die Schnellzugriffsanpassungen der aktuellen Datenbank<\/span><\/b><\/p>\n<p>Die Variable <b>sXML<\/b> nimmt zun&auml;chst den XML-Code entgegen. &uuml;ber <b>Replace<\/b> entfernt die n&auml;chste Zeile alle <b>mso:<\/b>-Strings aus ihrem Inhalt. Dann wird der ge&auml;nderte Code der Eigenschaft wieder zugewiesen. Dies wirkt sich noch nicht unmittelbar aus.<\/p>\n<p>Wie bei manuellen Anpassungen auch muss die Datenbank geschlossen und wieder ge&ouml;ffnet werden. Es zeigt sich dann, dass das Entfernen der <b>mso:<\/b>-Pr&auml;fixe keine negativen Auswirkungen auf das Funktionieren der Anpassungen hat. Das ist indessen f&uuml;r den XML-Kenner auch nicht verwunderlich, da nun als Standard-<b>Namespace<\/b> (<b>xmlns<\/b>) f&uuml;r das XML in der ersten Zeile das Schema direkt deklariert ist, statt &uuml;ber das Pr&auml;fix <b>mso<\/b>. Beides kommt im Prinzip auf das Gleiche heraus. <\/p>\n<p>Die spannende Frage ist nun, welche Ribbon-Anpassungen sich alle in <b>DocUICustomization<\/b> abseits der Schnellzugriffsleiste unterbringen lassen. <\/p>\n<h2>Was geht, was geht nicht<\/h2>\n<p>Bei einer Datenbank, deren Schnellzugriffsleiste Sie noch nicht anpassten, f&uuml;hrt der Zugriff auf <b>DocUICustomization<\/b> zu einem Fehler. Es gibt das <b>Property<\/b> schlicht noch nicht. Sie k&ouml;nnen es so per VBA erzeugen:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>prp<span style=\"color:blue;\"> As <\/span>DAO.Property\r\n<span style=\"color:blue;\">Set<\/span> prp = CurrentDb.CreateProperty( _\r\n     \"DocUICustomization\",  dbText)\r\nCurrentdb.Properties.Append prp<\/pre>\n<p><!--30percent--><\/p>\n<p>Dies legt die Eigenschaft nur an, ohne ihr einen Wert zuzuweisen. Stattdessen k&ouml;nnten Sie auch gleich <b>prp.Value<\/b> vor dem <b>Append<\/b> einen g&uuml;ltigen Anpassungs-XML-Code verabreichen. Sp&auml;ter l&auml;uft dies etwa so:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>prp<span style=\"color:blue;\"> As <\/span>DAO.Property\r\n<span style=\"color:blue;\">Dim <\/span>sXML<span style=\"color:blue;\"> As String<\/span>\r\nsXML = \"&lt;customUI ...\"\r\n<span style=\"color:blue;\">Set<\/span> prp = CurrentDb.Properties(\"DocUICustomization\")\r\nprp.Value = sXML<\/pre>\n<p>Der Inhalt von <b>sXML<\/b> ist nun unsere Spielwiese. Es haben sich &uuml;ber <b>Trial &#038; Error<\/b> nach unz&auml;hligen Versuchen einige  Ergebnisse herausgestellt. Der deklarierte Namespace in Listing 1 ist der des XML-Schemas von <b>Office 2007<\/b>. Tats&auml;chlich kann problemlos auch das ab <b>Office 2010<\/b> g&uuml;ltige Schema angegeben werden:<\/p>\n<pre>http:\/\/schemas.microsoft.com\/office\/2009\/07\/customui<\/pre>\n<p>Immerhin gab es ja in diesem XML-Schema so einige Erweiterungen, wie etwa die Definitionen zum <b>Backstage<\/b>.<\/p>\n<p>Tats&auml;chlich aber funktionieren, wie sich herausstellte, bei Anpassungen &uuml;ber <b>DocUICustomization<\/b> leider eine ganze Menge Dinge nicht:<\/p>\n<ul>\n<li>Der <b>Backstage<\/b> kann nicht angesprochen werden. Zwar k&ouml;nnen Sie in den XML-Code anstandslos alle hierf&uuml;r g&uuml;ltigen Auszeichnungen unterbringen, Access ignoriert diese jedoch geflissentlich.<\/li>\n<li>Dasselbe gilt f&uuml;r die Schnellzugriffsleiste. Hier kann nur die f&uuml;r die Anwendung vorgesehene Anpassung (<b>documentControls<\/b>) vorgenommen werden, nicht aber eine Modifikation der generellen Elemente (<b>sharedControls<\/b>).<\/li>\n<li><b>Callback<\/b>-Funktionen werden samt und sonders ignoriert, auch wenn sie angegeben sind. Damit entf&auml;llt eine dynamische Steuerung des Ribbon. <b>Callbacks<\/b>, wie <b>onLoad<\/b>, <b>getVisible<\/b>, <b>getImage<\/b>, et cetera, bleiben au&szlig;en vor. Die einzige m&ouml;gliche <b>Callback<\/b>-Funktion ist <b>onAction<\/b>, die Sie f&uuml;r Buttons angeben k&ouml;nnen. Die Funktion muss in Ihrem VBA-Modul allerdings eine von den &uuml;blichen <b>onAction<\/b>-Prozeduren abweichende Syntax aufweisen. Sp&auml;ter mehr dazu.<\/li>\n<li><b>startFromScratch<\/b> steht automatisch immer auf <b>False<\/b>. &auml;ndern k&ouml;nnen Sie dies nicht. Dadurch k&ouml;nnen Sie keinen Ribbon von Grund auf neu erstellen, sondern den eingebauten nur modifizieren. Immerhin kann das Attribut <b>visible<\/b> f&uuml;r alle <b>Tabs<\/b> auf <b>False<\/b> gesetzt werden, wodurch alle eingebauten Ribbon-Tabs verschwinden. Nicht gilt dies allerdings f&uuml;r den <b>Datei-Tab<\/b>. Der l&auml;sst sich ja generell auch &uuml;ber andere Methoden nicht entfernen. Da hier jedoch auch der <b>Backstage<\/b> von XML-Steuerungen ganz unbeeindruckt bleibt, m&uuml;ssen Sie bei <b>DocUICustomization <\/b>mit dem vollst&auml;ndigen Datei-Men&uuml; leben.<\/li>\n<li>Da Sie <b>Callbacks<\/b> nicht einsetzen k&ouml;nnen, sind eigene Icons etwa f&uuml;r Schaltfl&auml;chen nicht m&ouml;glich. Sie sind hier auf die in Access eingebauten <b>imageMso<\/b>-Bildchen beschr&auml;nkt.<\/li>\n<li>Indirekt f&uuml;hrt der Wegfall der Callbacks zu weiteren Einschr&auml;nkungen. Ein <b>comboBox<\/b>-Element etwa l&auml;sst sich so nicht auswerten, da dessen <b>item<\/b>-Elemente keine <b>onAction<\/b>-Attribute erlauben. Der Wert des <b>comboBox<\/b>-Element wird in der Regel &uuml;ber sein Callback <b>onChange<\/b> ausgelesen. &auml;hnliches gilt f&uuml;r die Elemente <b>checkBox<\/b>, <b>toggleButton<\/b>, <b>editBox<\/b>, <b>dropDown<\/b>.<\/li>\n<\/ul>\n<p>Zusammengefasst kann man festhalten, dass diese Einsatzbereiche f&uuml;r Ribbons &uuml;ber <b>DocUICustomization<\/b> funktionieren:<\/p>\n<ul>\n<li>Ausblenden einzelner oder aller eingebauten <b>Tabs<\/b>. Ebenso k&ouml;nnen einzelne Elemente selektiv entfernt werden.<\/li>\n<li>Anlegen neuer Tabs und Gruppen. Als Elemente innerhalb dieser kommen zuv&ouml;rderst Buttons infrage. Das Element <b>button<\/b> wiederum kann nur in diesen Elternelementen vorkommen:  <b>documentControls<\/b>, <b>menu<\/b>, <b>gallery<\/b>, <b>group<\/b>, <b>buttonGroup<\/b>, <b>box<\/b>. Letztere drei sind lediglich Container zur optischen Gruppierung der Buttons. Mit <b>menu<\/b> und <b>gallery<\/b> stehen immerhin zwei Elemente bereit, &uuml;ber die sich Dropdown-Schaltfl&auml;chen realisieren lassen.<\/li>\n<li>Zur Gestaltung lassen sich praktisch nur die Attribute <b>label<\/b>, <b>size<\/b>, <b>imageMso<\/b>, <b>screentip<\/b>, <b>supertip<\/b> und <b>keytip<\/b> einsetzen. Die Attribute <b>visible<\/b> und <b>enabled<\/b> ergeben wenig Sinn.<\/li>\n<\/ul>\n<p>Ein ausget&uuml;ftelter Ribbon, wie &uuml;ber <b>USysRibbons<\/b> oder <b>LoadCustomUI<\/b> erreichbar, l&auml;sst sich damit also nicht gestalten. F&uuml;r einfachere Zwecke sind die M&ouml;glichkeiten jedoch ausreichend. Schlie&szlig;lich boten die Men&uuml;s und Symbolleisten &auml;lterer Office-Versionen ja auch nicht viel mehr&#8230;<\/p>\n<h2>XML-Code der Beispieldatenbank<\/h2>\n<p>Das l&auml;ngliche Listing der folgenden Seite (Listing 3)verdeutlicht, wie der XML-Code f&uuml;r <b>DocUICustomization<\/b> zusammengesetzt wird. Der Variablen <b>sXML<\/b> wird in der Routine <b>SetRibbonCust<\/b> zeilenweise ein XML-Tag addiert. Der Code wurde &uuml;ber die <b>MZ-Tools f&uuml;r VBA<\/b> durchnummeriert. Das ist deshalb n&uuml;tzlich, weil sich gerne Fehler in die Auszeichnungen einschleichen. Beim Laden der Datenbank meldet Access dann Fehler, die sich auf eine bestimmte XML-Zeile und -Position beziehen. &uuml;ber die Nummerierung ist die betreffende Zeile dann schnell ausgemacht.<\/p>\n<pre><span style=\"color:blue;\">Sub <\/span>SetRibbonCust()\r\n     <span style=\"color:blue;\">Dim <\/span>sXML<span style=\"color:blue;\"> As String<\/span>\r\n10  sXML = sXML & \"&lt;customUI xmlns=''http:\/\/schemas.microsoft.com\/office\/2009\/07\/customui''&gt;;\"\r\n20  sXML = sXML & \"&lt;ribbon&gt;;\"\r\n30  sXML = sXML & \"&lt;qat&gt;;\"\r\n40  sXML = sXML & \"&lt;sharedControls&gt;;\"\r\n50  sXML = sXML & \"&lt;control idQ=''FileSave'' enabled=''false'' visible=''false''\/&gt;;\"\r\n60  sXML = sXML & \"&lt;control idQ=''FileClose'' enabled=''false'' visible=''false''\/&gt;;\"\r\n70  sXML = sXML & \"&lt;control idQ=''FileOpenDatabase'' enabled=''false'' visible=''false''\/&gt;;\"\r\n80  sXML = sXML & \"&lt;\/sharedControls&gt;;\"\r\n90  sXML = sXML & \"&lt;documentControls&gt;;\"\r\n100 sXML = sXML & \"&lt;control idQ=''FileCompactAndRepairDatabase'' screentip=''Komprimiere mich 1!''\/&gt;;\"\r\n110 sXML = sXML & \"&lt;\/documentControls&gt;;\"\r\n120 sXML = sXML & \"&lt;\/qat&gt;;\"\r\n130 sXML = sXML & \"&lt;tabs&gt;;\"\r\n140 sXML = sXML & \"&lt;tab idMso=''TabHomeAccess'' visible=''false''\/&gt;;\"\r\n150 sXML = sXML & \"&lt;tab idMso=''TabCreate'' visible=''false''\/&gt;;\"\r\n160 sXML = sXML & \"&lt;tab idMso=''TabExternalData'' visible=''false''\/&gt;;\"\r\n...\r\n200 sXML = sXML & \"&lt;tab idMso=''TabSourceControl'' visible=''false''\/&gt;;\"\r\n210 sXML = sXML & \"&lt;tab id=''TabTest'' label=''Aber Holla'' visible=''true''&gt;;\"\r\n220 sXML = sXML & \"&lt;group id=''Testgruppe2'' label=''Holla-Gruppe'' visible=''true'' autoScale=''true''&gt;;\"\r\n230 sXML = sXML & \"&lt;button id=''TestFunktion1'' label=''Holla-TestFunktion''\" & _\r\n                   \" imageMso=''VisibilityVisible'' onAction=''TestFunktion1''\/&gt;;\"\r\n240 sXML = sXML & \"button id=''TestFunktion2'' label=''Holla-Noch eine...''\" & _\r\n                   \" imageMso=''HappyFace'' onAction=''TestFunktion2''\/&gt;;\"\r\n250 sXML = sXML & \"button id=''TestFunktion3'' label=''Der Code ist hier...''\" & _\r\n                   \" imageMso=''VisualBasic'' onAction=''TestFunktion3''\/&gt;;\"\r\n270 sXML = sXML & \"&lt;menu id=''men1'' label=''Hier was auswaehlen!'' imageMso=''ChartPlotArea'' itemSize=''normal''&gt;;\"\r\n280 sXML = sXML & \"&lt;button id=''menbtn1'' imageMso=''FrameCreateBelow'' label=''Menueintrag 1'' onAction=''fuMenu1''\/&gt;;\"\r\n290 sXML = sXML & \"&lt;button id=''menbtn2'' imageMso=''FrameCreateLeft'' label=''Menueintrag 2'' onAction=''fuMenu2''\/&gt;;\"\r\n300 sXML = sXML & \"&lt;menuSeparator id=''sep1''\/&gt;;\"\r\n310 sXML = sXML & \"&lt;button id=''menbtn3'' imageMso=''FrameCreateRight'' label=''Menueintrag 3'' onAction=''fuMenu3''\/&gt;;\"\r\n320 sXML = sXML & \"&lt;\/menu&gt;;\"\r\n330 sXML = sXML & \"&lt;\/group&gt;;\"\r\n340 sXML = sXML & \"&lt;\/tab&gt;;\"\r\n350 sXML = sXML & \"&lt;\/tabs&gt;;\"\r\n360 sXML = sXML & \"&lt;\/ribbon&gt;;\"\r\n370 sXML = sXML & \"&lt;\/customUI&gt;;\"\r\n     sXML = <span style=\"color:blue;\">Replace<\/span>(sXML, \";\", <span style=\"color:blue;\">vbCrLf<\/span>)\r\n     <span style=\"color:blue;\">If <\/span>SetDbProperty(\"DocUICustomization\", sXML)<span style=\"color:blue;\"> Then<\/span>  <span style=\"color:blue;\">MsgBox<\/span> \"Ribbon Customization set\" _\r\n        <span style=\"color:blue;\">Else<\/span> <span style=\"color:blue;\">MsgBox<\/span> \"Ribbon Customization failed\"\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 3: Hauptfunktion zum Leeren der Eigenschaft BillingInformation der Elemente eines Folders<\/span><\/b><\/p>\n<p>Dazu muss allerdings jede XML-Zeile mit einem Umbruch enden. Das wird dadurch erreicht, dass im Code vor jedem abschlie&szlig;enden Anf&uuml;hrungszeichen ein Semikolon eingef&uuml;gt ist, welches &uuml;ber die <b>Replace<\/b>-Anweisung unten schlie&szlig;lich in einen Zeilenumbruch (<b>vbCrLf<\/b>) umgewandelt wird. Die hier nicht abgebildete Hilfsprozedur <b>SetDBProperty<\/b> schlie&szlig;lich weist der Eigenschaft <b>DocUICustomization<\/b> den Inhalt von <b>sXML<\/b> zu. Nach dem Schlie&szlig;en der Datenbank ist die Eigenschaft g&uuml;ltig gespeichert. Bei erneutem &ouml;ffnen pr&auml;sentiert sie sich, wie eingangs demonstriert.<\/p>\n<p>Aus dem Modul k&ouml;nnen Sie nun den Anpassungs-VBA-Code entfernen und lassen nur die Callback-Funktionen f&uuml;r die Buttons &uuml;brig. Einmal gesetzt, bleibt der XML-Code auf ewig in der Datenbank gespeichert.<\/p>\n<p>&uuml;brigens zeigt sich ein etwas merkw&uuml;rdiges Verhalten beim Schlie&szlig;en und &ouml;ffnen der Datenbank. &ouml;ffnen Sie sie im <b>Backstage<\/b> unmittelbar nach dem Schlie&szlig;en, so scheint die Ribbon-Anpassung au&szlig;er Kraft gesetzt zu sein &#8211; der eingebaute Ribbon erscheint. Bild 3 verdeutlicht das. Oben wurde die Datenbank gerade geschlossen. Dennoch zeigt der zweite Tab die Beschriftung <b>Aber holla<\/b>. Klicken Sie auf diesen, so verschwindet die Anpassung aber augenblicklich und wechselt in das eingebaute Men&uuml;band (untere Abbildung). Erst danach funktioniert <b>DocUICustomization<\/b> bei neuem Laden der Datenbank wieder. Offenbar ben&ouml;tigt Access erst den Ausstieg aus dem <b>Backstage<\/b>-Bereich, um die <b>Ribbon-Tabs<\/b> zu aktualisieren.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_01\/NachSchliessen.png\" alt=\"Erst beim Umschalten der Ribbon-Tabs aus dem Backstage verschwinden die Anpassungen\" width=\"650\" height=\"385,2554\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Erst beim Umschalten der Ribbon-Tabs aus dem Backstage verschwinden die Anpassungen<\/span><\/b><\/p>\n<p>Zu den Vorteilen der L&ouml;sung geh&ouml;rt die Tatsache, dass der <b>Custom-Ribbon<\/b> nicht etwa deaktiviert werden kann, indem beim Start der Datenbank die <b>SHIFT<\/b>-Taste gedr&uuml;ckt wird. Zwar gelingt dies auch bei Ribbon-Anpassungen per Tabelle <b>USysRibbons<\/b> nicht, doch da muss in den <b>Optionen<\/b> der <b>Aktuellen Datenbank<\/b> ein in der Tabelle enthaltener Ribbon unter <b>Name des Men&uuml;bands<\/b> ausdr&uuml;cklich spezifiziert sein.<\/p>\n<p>L&ouml;scht man diesen Eintrag, so zeigt sich auch kein angepasster Ribbon. Bei <b>DocUICustomization<\/b> dagegen kann dieser Eintrag leer bleiben. Also gibt es da auch nichts zum L&ouml;schen.<\/p>\n<p>Allerdings zeigt die <b>Schnellzugriffsleiste<\/b> f&uuml;r die <b>Aktuelle Datenbank<\/b> in den <b>Optionen<\/b> f&uuml;r unser Beispiel eine Anpassungszeile f&uuml;r einen Button. L&ouml;scht man diesen manuell, so verschwindet nicht nur er, sondern das <b>Property<\/b> <b>DocUICustomization<\/b> komplett! Zu allem &uuml;berfluss waren bei uns danach sogar s&auml;mtliche Tabs auch in anderen Datenbanken scheinbar verschwunden. Ein Neustart von Access &auml;ndert daran nichts! Sie m&uuml;ssen in einem solchen Fall die Tabs in den Optionen wieder manuell aktivieren &#8211; sie waren auf unsichtbar gestellt worden, was man als Bug bezeichnen k&ouml;nnte, h&auml;tte Microsoft die Eigenschaft denn dokumentiert&#8230;<\/p>\n<p>Nat&uuml;rlich k&ouml;nnen Sie die Eigenschaft auch &uuml;ber eine externe <b>XML<\/b>-Datei einstellen, statt &uuml;ber das Zusammenst&uuml;ckeln im Code. Listing 4 zeigt, wie Sie das gegebenenfalls anstellen.<\/p>\n<pre><span style=\"color:blue;\">Sub <\/span>SetRibbonCustFromFile()\r\n   <span style=\"color:blue;\">Dim <\/span>sXML<span style=\"color:blue;\"> As String<\/span>\r\n   Open CurrentProject.Path & _\r\n                      \"\\ribbon.xml\" For Binary<span style=\"color:blue;\"> As <\/span>#1\r\n   sXML = String(LOF(1), 0)\r\n   Get #1, , sXML\r\n   Close #1\r\n   <span style=\"color:blue;\">If <\/span>SetDbProperty(\"DocUICustomization\", sXML)<span style=\"color:blue;\"> Then<\/span>\r\n     <span style=\"color:blue;\">MsgBox<\/span> \"Ribbon Customization set\"\r\n   <span style=\"color:blue;\">Else<\/span>\r\n     <span style=\"color:blue;\">MsgBox<\/span> \"Ribbon Customization failed\"\r\n   <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 4: Setzen von DocUICustomaization &uuml;ber eine XML-Datei<\/span><\/b><\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>RibbonCustDoc.zip<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/31F24B47-2731-497C-A584-D76A71BDE27B\/aiu_1068.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Zum Gestalten benutzerdefinierter Ribbons f&uuml;r Ihre Access-Anwendung gibt es zwei unterschiedliche L&ouml;sungen. Die eine setzt vollst&auml;ndig auf VBA-Code und die Methode LoadCustomUI, die andere verwendet eine ausgeblendete Tabelle USysRibbons, die Sie  jeweils mit den XML-Auszeichnungen f&uuml;r die Anpassungen versehen. Dass jedoch auch noch eine dritte L&ouml;sung existiert, ist weitgehend unbekannt.<\/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":[66012017,662017,44000028],"tags":[],"class_list":["post-55001068","post","type-post","status-publish","format-standard","hentry","category-66012017","category-662017","category-Ergonomie_und_Benutzeroberflaeche"],"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>Eigene Ribbons ohne Code - 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\/Eigene_Ribbons_ohne_Code\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Eigene Ribbons ohne Code\" \/>\n<meta property=\"og:description\" content=\"Zum Gestalten benutzerdefinierter Ribbons f&uuml;r Ihre Access-Anwendung gibt es zwei unterschiedliche L&ouml;sungen. Die eine setzt vollst&auml;ndig auf VBA-Code und die Methode LoadCustomUI, die andere verwendet eine ausgeblendete Tabelle USysRibbons, die Sie jeweils mit den XML-Auszeichnungen f&uuml;r die Anpassungen versehen. Dass jedoch auch noch eine dritte L&ouml;sung existiert, ist weitgehend unbekannt.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Eigene_Ribbons_ohne_Code\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-14T13:40:39+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg09.met.vgwort.de\/na\/07f008cfa1ef4fe9a2f92af54dad4db6\" \/>\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=\"13\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Eigene_Ribbons_ohne_Code\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Eigene_Ribbons_ohne_Code\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Eigene Ribbons ohne Code\",\"datePublished\":\"2020-05-14T13:40:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Eigene_Ribbons_ohne_Code\\\/\"},\"wordCount\":2063,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Eigene_Ribbons_ohne_Code\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/07f008cfa1ef4fe9a2f92af54dad4db6\",\"articleSection\":[\"1\\\/2017\",\"2017\",\"Ergonomie und Benutzeroberfl\u00e4che\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Eigene_Ribbons_ohne_Code\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Eigene_Ribbons_ohne_Code\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Eigene_Ribbons_ohne_Code\\\/\",\"name\":\"Eigene Ribbons ohne Code - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Eigene_Ribbons_ohne_Code\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Eigene_Ribbons_ohne_Code\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/07f008cfa1ef4fe9a2f92af54dad4db6\",\"datePublished\":\"2020-05-14T13:40:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Eigene_Ribbons_ohne_Code\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Eigene_Ribbons_ohne_Code\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Eigene_Ribbons_ohne_Code\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/07f008cfa1ef4fe9a2f92af54dad4db6\",\"contentUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/07f008cfa1ef4fe9a2f92af54dad4db6\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Eigene_Ribbons_ohne_Code\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Eigene Ribbons ohne Code\"}]},{\"@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":"Eigene Ribbons ohne Code - 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\/Eigene_Ribbons_ohne_Code\/","og_locale":"de_DE","og_type":"article","og_title":"Eigene Ribbons ohne Code","og_description":"Zum Gestalten benutzerdefinierter Ribbons f&uuml;r Ihre Access-Anwendung gibt es zwei unterschiedliche L&ouml;sungen. Die eine setzt vollst&auml;ndig auf VBA-Code und die Methode LoadCustomUI, die andere verwendet eine ausgeblendete Tabelle USysRibbons, die Sie jeweils mit den XML-Auszeichnungen f&uuml;r die Anpassungen versehen. Dass jedoch auch noch eine dritte L&ouml;sung existiert, ist weitgehend unbekannt.","og_url":"https:\/\/access-im-unternehmen.de\/Eigene_Ribbons_ohne_Code\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-14T13:40:39+00:00","og_image":[{"url":"http:\/\/vg09.met.vgwort.de\/na\/07f008cfa1ef4fe9a2f92af54dad4db6","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"13\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Eigene_Ribbons_ohne_Code\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Eigene_Ribbons_ohne_Code\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Eigene Ribbons ohne Code","datePublished":"2020-05-14T13:40:39+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Eigene_Ribbons_ohne_Code\/"},"wordCount":2063,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Eigene_Ribbons_ohne_Code\/#primaryimage"},"thumbnailUrl":"http:\/\/vg09.met.vgwort.de\/na\/07f008cfa1ef4fe9a2f92af54dad4db6","articleSection":["1\/2017","2017","Ergonomie und Benutzeroberfl\u00e4che"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Eigene_Ribbons_ohne_Code\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Eigene_Ribbons_ohne_Code\/","url":"https:\/\/access-im-unternehmen.de\/Eigene_Ribbons_ohne_Code\/","name":"Eigene Ribbons ohne Code - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Eigene_Ribbons_ohne_Code\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Eigene_Ribbons_ohne_Code\/#primaryimage"},"thumbnailUrl":"http:\/\/vg09.met.vgwort.de\/na\/07f008cfa1ef4fe9a2f92af54dad4db6","datePublished":"2020-05-14T13:40:39+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Eigene_Ribbons_ohne_Code\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Eigene_Ribbons_ohne_Code\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Eigene_Ribbons_ohne_Code\/#primaryimage","url":"http:\/\/vg09.met.vgwort.de\/na\/07f008cfa1ef4fe9a2f92af54dad4db6","contentUrl":"http:\/\/vg09.met.vgwort.de\/na\/07f008cfa1ef4fe9a2f92af54dad4db6"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Eigene_Ribbons_ohne_Code\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Eigene Ribbons ohne Code"}]},{"@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\/55001068","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=55001068"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001068\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001068"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001068"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001068"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}