{"id":55001122,"date":"2018-04-01T00:00:00","date_gmt":"2020-05-13T21:18:42","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1122"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"RibbonElemente_aktivieren_und_deaktivieren","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/RibbonElemente_aktivieren_und_deaktivieren\/","title":{"rendered":"Ribbon-Elemente aktivieren und deaktivieren"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg06.met.vgwort.de\/na\/cc70337a34e24c7691fee4d62dcd877d\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Im Beitrag &#8222;Software freischalten per Schl&uuml;ssel&#8220; zeigen wir, wie Sie mit einem Freischaltschl&uuml;ssel eine Information &uuml;bergeben k&ouml;nnen, welche Funktionen einer Datenbank f&uuml;r den Benutzer mit dem Schl&uuml;ssel freigegeben sind und wie Sie etwa in einem Formular die Schaltfl&auml;chen aktivieren oder deaktivieren, die diese Funktionen aufrufen. Im vorliegenden Beitrag wollen wir uns anschauen, wie Sie die Schaltfl&auml;chen eines Ribbons abh&auml;ngig von den mit dem Freischaltschl&uuml;ssel &uuml;bergebenen Daten aktivieren oder deaktivieren k&ouml;nnen.<\/b><\/p>\n<p>In dem genannten Beitrag <b>Software freischalten per Schl&uuml;ssel <\/b>(<b>www.access-im-unternehmen.de\/1126<\/b>) gibt es eine Funktion, welche einen Wert f&uuml;r die mit einem Freischaltschl&uuml;ssel freigeschalteten Features des Programms mitliefert. Diese bietet einen Wert von <b>0 <\/b>bis <b>7<\/b>, wobei diese Zahl in eine Bin&auml;rzahl umzuwandeln ist und dann &uuml;ber die einzelnen Positionen angibt, welche der Features freigeschaltet sind.<\/p>\n<p>Der Wert <b>7 <\/b>w&uuml;rde also beispielsweise bedeuten, dass alle Features funktionieren sollen &#8211; <b>7 <\/b>entspricht bin&auml;r <b>111<\/b>. Der Wert <b>4 <\/b>w&uuml;rde hei&szlig;en, dass nur die Funktion aktiviert ist, welche der ersten Position von links entspricht, der Wert <b>1<\/b>, dass nur die Funktion auf der dritten Position laufen soll.<\/p>\n<p>Bevor wir uns um diesen Wert und seine Interpretation f&uuml;r die Steuer-elemente des Ribbons k&uuml;mmern, wollen wir aber erst einmal das Ribbon hinzuf&uuml;gen.<\/p>\n<h2>Verweis auf die Office-Bibliothek<\/h2>\n<p>F&uuml;r die Programmierung des Ribbons ben&ouml;tigen wir zun&auml;chst einen Verweis auf die Office-Bibliothek, den wir &uuml;ber den <b>Verweise<\/b>-Dialog hinzuf&uuml;gen. Diesen &ouml;ffnen Sie im VBA-Editor (<b>Alt + F11<\/b>) &uuml;ber den Men&uuml;eintrag <b>Extras|Verweise<\/b>. Im Dialog setzen Sie einen Haken f&uuml;r den Eintrag <b>Microsoft Office x.0 Object Library<\/b>, wobei <b>x <\/b>f&uuml;r die bei Ihnen verf&uuml;gbare Version steht (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_02\/pic_1122_001.png\" alt=\"Verweis auf die Office-Bibliothek\" width=\"424,7115\" height=\"334,8159\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Verweis auf die Office-Bibliothek<\/span><\/b><\/p>\n<h2>Tabelle zum Speichern der Ribbon-Definition<\/h2>\n<p>Danach f&uuml;gen Sie eine Tabelle namens <b>USysRibbons <\/b>zur Datenbank hinzu, welche die Ribbon-Definitionen speichern soll. Diese sieht in der Entwurfsansicht wie in Bild 2 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_02\/pic_1122_002.png\" alt=\"Definition der Tabelle USysRibbons\" width=\"499,6607\" height=\"345,985\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Definition der Tabelle USysRibbons<\/span><\/b><\/p>\n<p>Wegen Ihres Namens, der <b>USys&#8230; <\/b>beginnt, wird die Tabelle normalerweise nicht im Navigationsbereich von Access angezeigt. Sie k&ouml;nnen diese jedoch einblenden, wenn Sie in den Optionen des Navigationsbereichs, den Sie durch einen Klick mit der rechten Maustaste auf den Titel des Navigationsbereichs und Auswahl des Eintrags <b>Navigationsoptionen&#8230; <\/b>aus dem Kontextmen&uuml; den Eintrag <b>Systemobjekte anzeigen <\/b>aktivieren.<\/p>\n<h2>Ribbon definieren<\/h2>\n<p>Anschlie&szlig;end k&ouml;nnen wir das Ribbon definieren. Dieses sieht im ersten Entwurf wie in Listing 1 aus. Den dortigen Code tragen Sie in das Feld <b>RibbonXML <\/b>der Tabelle <b>USysRibbons <\/b>ein. Das Feld <b>Ribbonname <\/b>erh&auml;lt den Wert <b>Main<\/b>. Die Tabelle sieht dann im Entwurf wie in Bild 3 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_02\/pic_1122_005.png\" alt=\"Die Tabelle USysRibbons mit der Ribbon-Definition\" width=\"549,6265\" height=\"412,6765\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Die Tabelle USysRibbons mit der Ribbon-Definition<\/span><\/b><\/p>\n<pre>&lt;xml version=\"1.0\"&gt;\r\n&lt;customUI xmlns=\"http:\/\/schemas.microsoft.com\/office\/2009\/07\/customui\" onLoad=\"OnLoad_NeuesRibbon\"&gt;\r\n   &lt;ribbon startFromScratch=\"true\"&gt;\r\n     &lt;tabs&gt;\r\n       &lt;tab id=\"tab1\" label=\"Tab 1\"&gt;\r\n         &lt;group id=\"grp1\" label=\"Gruppe 1\"&gt;\r\n           &lt;button label=\"Button 1\" id=\"btn1\"\/&gt;\r\n           &lt;button label=\"Button 2\" id=\"btn2\"\/&gt;\r\n           &lt;button label=\"Button 3\" id=\"btn3\"\/&gt;\r\n         &lt;\/group&gt;\r\n         &lt;group id=\"grp2\" label=\"Gruppe 2\" getVisible=\"getVisible\"&gt;\r\n           &lt;button label=\"Button 1\" id=\"btn21\"\/&gt;\r\n         &lt;\/group&gt;\r\n         &lt;group id=\"grp3\" label=\"Gruppe 3\" getVisible=\"getVisible\"&gt;\r\n             &lt;button label=\"Button 1\" id=\"btn31\"\/&gt;\r\n         &lt;\/group&gt;\r\n       &lt;\/tab&gt;\r\n       &lt;tab id=\"tab2\" label=\"Tab 2\" \/&gt;\r\n       &lt;tab id=\"tab3\" label=\"Tab 3\" \/&gt;\r\n     &lt;\/tabs&gt;\r\n   &lt;\/ribbon&gt;\r\n&lt;\/customUI&gt;<\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Definition des Ribbons mit drei Schaltfl&auml;chen, drei Tabs und drei Gruppen<\/span><\/b><\/p>\n<p>Dadurch, dass wir die Eigenschaft <b>startFromScratch <\/b>des Elements <b>ribbon <\/b>auf den Wert <b>true <\/b>eingestellt haben, werden alle eingebauten Elemente des Ribbons ausgeblendet und nur noch die benutzerdefinierten Elemente angezeigt.<\/p>\n<p>Damit das Ribbon nun auch noch in der Anwendung erscheint, sind noch weitere Schritte n&ouml;tig. Als Erstes m&uuml;ssen Sie die Anwendung schlie&szlig;en und neu starten. Erst dann ist die neue Ribbon-Definition auch in der Auswahlliste der Ribbons f&uuml;r diese Anwendung enthalten. Die Auswahlliste finden Sie, wenn Sie mit einem Klick auf den <b>Datei<\/b>-Reiter des Ribbons den Backstage-Bereich &ouml;ffnen und dann auf den Eintrag <b>Optionen <\/b>klicken. Im nun erscheinenden Dialog <b>Access-Optionen <\/b>w&auml;hlen Sie links den Eintrag <b>Aktuelle Datenbank <\/b>aus. Rechts finden Sie dann unter <b>Men&uuml;band- und Symbolleistenoptionen <\/b>die Eigenschaft Name des Men&uuml;bands, wo Sie unser soeben erstelltes Ribbon namens <b>Main <\/b>ausw&auml;hlen (siehe Bild 4).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_02\/pic_1122_004.png\" alt=\"Auswahl des Ribbons in den Einstellungen der Datenbank\" width=\"649,559\" height=\"337,7361\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Auswahl des Ribbons in den Einstellungen der Datenbank<\/span><\/b><\/p>\n<p>Wenn Sie danach die Anwendung nochmals schlie&szlig;en und wieder &ouml;ffnen, erscheint unser Ribbon und sieht wie in Bild 5 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_02\/pic_1122_006.png\" alt=\"Benutzerdefiniertes Ribbon\" width=\"424,7115\" height=\"193,9549\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Benutzerdefiniertes Ribbon<\/span><\/b><\/p>\n<h2>Callback-Attribute anlegen<\/h2>\n<p>Nun sind allerdings noch keine Elemente deaktiviert geschweige denn h&auml;tten wir &uuml;berhaupt irgendwelche Ma&szlig;nahmen ergriffen, um dies zu bewerkstelligen. Wie aber wollen wir daf&uuml;r sorgen, dass die Schaltfl&auml;chen in Abh&auml;ngigkeit von den freigeschalteten Funktionen aktiviert oder deaktiviert werden Dazu ben&ouml;tigen wir zun&auml;chst einige Callback-Attribute f&uuml;r die einzelnen Elemente sowie die VBA-Prozeduren, welche die passenden Werte zum Aktivieren oder Deaktivieren zur&uuml;ckliefern.<\/p>\n<p>Genau genommen k&ouml;nnen wir nur die Button-Elemente aktivieren oder deaktivieren, da nur diese &uuml;ber eine <b>enabled<\/b>-Eigenschaft verf&uuml;gen und eine entsprechende <b>getEnabled<\/b>-Eigenschaft.<\/p>\n<p>Wir wollen aber auch anhand der <b>tab<\/b>&#8211; und <b>group<\/b>-Elemente zeigen, wie sich diese in Abh&auml;ngigkeit vom Funktionsumfang beeinflussen lassen. Es fehlt diesen Elementen zwar an einer <b>enabled<\/b>-Eigenschaft, daf&uuml;r stellen Sie aber ein <b>visible<\/b>-Attribut und ein entsprechendes <b>getVisible<\/b>-Callback-Attribut zur Verf&uuml;gung.<\/p>\n<p><!--30percent--><\/p>\n<p>Also statten wir die <b>getEnabled<\/b>-Attribute der <b>button<\/b>-Elemente und die <b>getVisible<\/b>-Attribute der <b>tab<\/b>&#8211; und der <b>group<\/b>-Elemente mit den Werten <b>getEnabled <\/b>beziehungsweise <b>getVisible <\/b>aus. Die Definition des Ribbons sieht dann wie in Listing 2 aus.<\/p>\n<pre>&lt;xml version=\"1.0\"&gt;\r\n&lt;customUI xmlns=\"http:\/\/schemas.microsoft.com\/office\/2009\/07\/customui\"&gt;\r\n   &lt;ribbon startFromScratch=\"true\"&gt;\r\n     &lt;tabs&gt;\r\n       &lt;tab id=\"tab1\" label=\"Tab 1\" getVisible=\"getVisible\"&gt;\r\n         &lt;group id=\"grp1\" label=\"Gruppe 1\" getVisible=\"getVisible\"&gt;\r\n           &lt;button getEnabled=\"getEnabled\" label=\"Button 1\" id=\"btn1\"\/&gt;\r\n           &lt;button getEnabled=\"getEnabled\" label=\"Button 2\" id=\"btn2\"\/&gt;\r\n           &lt;button getEnabled=\"getEnabled\" label=\"Button 3\" id=\"btn3\"\/&gt;\r\n         &lt;\/group&gt;\r\n         &lt;group id=\"grp2\" label=\"Gruppe 2\" getVisible=\"getVisible\"&gt;\r\n           &lt;button label=\"Button 1\" id=\"btn21\"\/&gt;\r\n         &lt;\/group&gt;\r\n         &lt;group id=\"grp3\" label=\"Gruppe 3\" getVisible=\"getVisible\"&gt;\r\n             &lt;button label=\"Button 1\" id=\"btn31\"\/&gt;\r\n         &lt;\/group&gt;\r\n       &lt;\/tab&gt;\r\n       &lt;tab id=\"tab2\" label=\"Tab 2\" getVisible=\"getVisible\"\/&gt;\r\n       &lt;tab id=\"tab3\" label=\"Tab 3\" getVisible=\"getVisible\"\/&gt;\r\n     &lt;\/tabs&gt;\r\n   &lt;\/ribbon&gt;\r\n&lt;\/customUI&gt;<\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 2: Definition des Ribbons mit drei Schaltfl&auml;chen, drei Tabs und drei Gruppen, diesmal mit Callback-Attributen<\/span><\/b><\/p>\n<p>Was haben wir damit erreicht Wenn wir die Elemente des Ribbons, die wir mit den Callback-Attributen ausgestattet haben, durch Starten der Anwendung sichtbar machen, sucht Access im VBA-Projekt nach VBA-Funktionen, deren Namen den f&uuml;r die Attribute <b>getEnabled <\/b>und <b>getVisible <\/b>angegebenen Werten entsprechen. Diese werden dann aufgerufen und wir k&ouml;nnen innerhalb dieser Funktionen festlegen, welchen Wert die Elemente f&uuml;r die entsprechende Eigenschaft <b>enabled <\/b>oder <b>visible <\/b>zugewiesen bekommen.<\/p>\n<h2>Enabled-Eigenschaft zur Laufzeit zuweisen<\/h2>\n<p>Wir nehmen an, dass die &uuml;ber die im Beitrag <b>Software freischalten per Schl&uuml;ssel <\/b>beschriebene Technik den Wert f&uuml;r die freigeschalteten Funktionen in einer &ouml;ffentlichen Variablen namens <b>intFunktionen <\/b>im Modul <b>mdlTools <\/b>speichert:<\/p>\n<pre><span style=\"color:blue;\">Public <\/span>intFunktionen<span style=\"color:blue;\"> As Integer<\/span><\/pre>\n<p>Dann k&ouml;nnen wir in der Funktion <b>getEnabled<\/b>, die beim Anzeigen der <b>button<\/b>-Elemente des Ribbons f&uuml;r jedes Element einmal aufgerufen wird, auf diese Variable zugreifen und in Abh&auml;ngigkeit vom Wert dieser Variablen die einzelnen Steuer-elemente aktivieren oder deaktivieren. Die folgende erste Version der Funktion <b>getEnabled <\/b>ist der &uuml;bersichthalber etwas umfangreicher geworden. Sie pr&uuml;ft anhand der Eigenschaft <b>id <\/b>des Parameters <b>control <\/b>den Namen des ausl&ouml;senden Steuerelements und sieht in den Zweiten einer <b>Select Case<\/b>-Bedingung f&uuml;r jedes Element eine entsprechende Behandlung vor.<\/p>\n<p>Die Schaltfl&auml;che <b>btn1 <\/b>soll beispielsweise aktiviert werden, wenn die erste <b>1 <\/b>im Bin&auml;rwert von <b>intFunktionen <\/b>gesetzt ist. Das w&auml;re beispielsweise beim Wert <b>4 <\/b>der Fall, was bin&auml;r <b>100 <\/b>entspricht. Ob die erste <b>1 <\/b>gesetzt ist, ermitteln wir mit dem Ausdruck <b>(intFunktionen And 4) = 4<\/b>.<\/p>\n<p>Ist dies der Fall, wird enabled auf True eingestellt, wenn nicht, auf False. Die erste Schaltfl&auml;che ist somit aktiviert, wenn der Wert von <b>intFunktion <\/b>gleich <b>4<\/b>, <b>5 <\/b>oder <b>7 <\/b>ist.<\/p>\n<p>Die folgende Funktion legen wir wie die weiteren Funktionen in Zusammenhang mit dem Ribbon in einem neuen Standardmodul namens <b>mdlRibbon <\/b>an:<\/p>\n<pre><span style=\"color:blue;\">Sub <\/span>getEnabled(control<span style=\"color:blue;\"> As <\/span>IRibbonControl, ByRef enabled)\r\n     Select Case control.Id\r\n         <span style=\"color:blue;\">Case <\/span>\"btn1\"\r\n             <span style=\"color:blue;\">If <\/span>(intFunktionen And 4) = 4<span style=\"color:blue;\"> Then<\/span>\r\n                 enabled = <span style=\"color:blue;\">True<\/span>\r\n             <span style=\"color:blue;\">Else<\/span>\r\n                 enabled = <span style=\"color:blue;\">False<\/span>\r\n             <span style=\"color:blue;\">End If<\/span>\r\n         <span style=\"color:blue;\">Case <\/span>\"btn2\"\r\n             <span style=\"color:blue;\">If <\/span>(intFunktionen And 2) = 2<span style=\"color:blue;\"> Then<\/span>\r\n                 enabled = <span style=\"color:blue;\">True<\/span>\r\n             <span style=\"color:blue;\">Else<\/span>\r\n                 enabled = <span style=\"color:blue;\">False<\/span>\r\n             <span style=\"color:blue;\">End If<\/span>\r\n         <span style=\"color:blue;\">Case <\/span>\"btn3\"\r\n             <span style=\"color:blue;\">If <\/span>(intFunktionen And 1) = 1<span style=\"color:blue;\"> Then<\/span>\r\n                 enabled = <span style=\"color:blue;\">True<\/span>\r\n             <span style=\"color:blue;\">Else<\/span>\r\n                 enabled = <span style=\"color:blue;\">False<\/span>\r\n             <span style=\"color:blue;\">End If<\/span>\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Dies kann man auch k&uuml;rzer fassen:<\/p>\n<pre><span style=\"color:blue;\">Sub <\/span>getEnabled(control<span style=\"color:blue;\"> As <\/span>IRibbonControl, ByRef enabled)\r\n     Select Case control.Id\r\n         <span style=\"color:blue;\">Case <\/span>\"btn1\"\r\n             enabled = (intFunktionen And 4) = 4\r\n         <span style=\"color:blue;\">Case <\/span>\"btn2\"\r\n             enabled = (intFunktionen And 2) = 2\r\n         <span style=\"color:blue;\">Case <\/span>\"btn3\"\r\n             enabled = (intFunktionen And 1) = 1\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Auf die gleiche Weise wollen wir <b>getVisible<\/b>-Attribute der <b>tab<\/b>&#8211; und <b>group<\/b>-Elemente bearbeiten:<\/p>\n<pre><span style=\"color:blue;\">Sub <\/span>getVisible(control<span style=\"color:blue;\"> As <\/span>IRibbonControl, ByRef visible)\r\n     Select Case control.Id\r\n         <span style=\"color:blue;\">Case <\/span>\"tab1\"\r\n             visible = (intFunktionen And 4) = 4\r\n         <span style=\"color:blue;\">Case <\/span>\"tab2\"\r\n             visible = (intFunktionen And 2) = 2\r\n         <span style=\"color:blue;\">Case <\/span>\"tab3\"\r\n             visible = (intFunktionen And 1) = 1\r\n         <span style=\"color:blue;\">Case <\/span>\"grp1\"\r\n             visible = (intFunktionen And 4) = 4\r\n         <span style=\"color:blue;\">Case <\/span>\"grp2\"\r\n             visible = (intFunktionen And 2) = 2\r\n         <span style=\"color:blue;\">Case <\/span>\"grp3\"\r\n             visible = (intFunktionen And 1) = 1\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Wenn nun der Wert der Variablen <b>intFunktionen <\/b>beispielsweise <b>4 <\/b>lautet, ergibt sich nach dem Starten der Anwendung das Bild aus Bild 6. Dort ist nur die Funktion der Schaltfl&auml;che <b>btn1 <\/b>freigeschaltet, und die Elemente <b>group2 <\/b>und <b>group3 <\/b>sowie <b>tab2 <\/b>und <b>tab3 <\/b>sind komplett ausgeblendet.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_02\/pic_1122_007.png\" alt=\"Ribbon mit nur einer freigeschalteten Funktion\" width=\"424,7115\" height=\"235,4115\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Ribbon mit nur einer freigeschalteten Funktion<\/span><\/b><\/p>\n<h2>Eventuelle Fehler im Code anzeigen<\/h2>\n<p>Sollten in Ihrer Anwendung Fehler auftreten, sodass beispielsweise das Ribbon gar nicht angezeigt wird, kann es sich nat&uuml;rlich auch um einen Fehler in der Ribbon-Definition oder um einen Fehler in den Callback-Funktionen handeln. Solche Fehler werden standardm&auml;&szlig;ig nicht an die Benutzeroberfl&auml;che gemeldet.<\/p>\n<p>Um sie sichtbar zu machen, m&uuml;ssen Sie erst eine bestimmte Option aktivieren. Diese finden Sie auch in den Access-Optionen, und zwar im Bereich <b>Clienteinstellungen <\/b>unter <b>Allgemein<\/b>. Die zu aktivierende Option hei&szlig;t <b>Fehler von Benutzeroberfl&auml;chen-Add-Ins anzeigen <\/b>(siehe Bild 7).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_02\/pic_1122_003.png\" alt=\"Fehleranzeige des Ribbons aktivieren\" width=\"649,559\" height=\"334,8876\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Fehleranzeige des Ribbons aktivieren<\/span><\/b><\/p>\n<h2>&auml;nderungen w&auml;hrend der Laufzeit<\/h2>\n<p>Nun kann es nat&uuml;rlich geschehen, dass der Benutzer w&auml;hrend der Laufzeit einen neuen Freischalt-Schl&uuml;ssel eingibt, etwa weil er neue Funktionen hinzugebucht hat. Stellen wir also nun &uuml;ber den Direktbereich einmal den Wert der Variablen <b>intFunktionen <\/b>auf den Wert <b>5 <\/b>ein:<\/p>\n<pre>intFunktionen = 5<\/pre>\n<p>Es tut sich nat&uuml;rlich nichts, denn es gibt ja kein Ereignis, das beim Anpassen von Variablenwerten ausgel&ouml;st wird.<\/p>\n<p>Wir m&uuml;ssen also noch etwas nachhelfen, damit wir bei &auml;nderungen des Funktionsumfangs zur Laufzeit auch eine &auml;nderung der aktivieren Steuer-elemente erhalten.<\/p>\n<p>Dazu nutzen wir eine M&ouml;glichkeit, die das Aktualisieren der durch Callback-Attribute eingestellten Eigenschaftswerte der Ribbon-Elemente erlaubt.<\/p>\n<p>Dazu sind zun&auml;chst zwei vorbereitende Schritte notwendig. Der erste ist, in der Ribbon-Definition f&uuml;r das Callback-Attribut <b>onLoad <\/b>des <b>customUI<\/b>-Elements den Wert <b>onLoad_NeuesRibbon <\/b>festzulegen:<\/p>\n<pre>&lt;customUI xmlns=\"...\" onLoad=\"OnLoad_Main\"&gt;<\/pre>\n<p>Im VBA-Modul <b>mdlRibbon<\/b>, wo sich bereits die schon angelegten Callback-Funktionen befinden, deklarieren wir eine Variable, welche einen Verweis auf das durch unsere XML-Definition erstellte Ribbon aufnehmen soll:<\/p>\n<pre><span style=\"color:blue;\">Public <\/span>objRibbon_Main<span style=\"color:blue;\"> As <\/span>IRibbonUI<\/pre>\n<p>Damit dieser Verweis beim Initialisieren des Ribbons auch zugeordnet wird, legen wir die passende Funktion f&uuml;r das Callback-Attribut <b>onLoad <\/b>namens <b>onLoad_Main<\/b> an:<\/p>\n<pre><span style=\"color:blue;\">Sub <\/span>onLoad_Main(ribbon<span style=\"color:blue;\"> As <\/span>IRibbonUI)\r\n     <span style=\"color:blue;\">Set<\/span> objRibbon_Main = ribbon\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Die einzige Anweisung dieser Funktion weist der Variablen <b>objRibbon_Main <\/b>den Inhalt des von der Funktion gelieferten Parameters <b>ribbon <\/b>zu.<\/p>\n<p>Nun k&ouml;nnen wir zur Laufzeit den Wert von <b>intFunktionen <\/b>&auml;ndern, zum Beispiel in den Wert <b>5<\/b>, <b>6 <\/b>oder <b>7<\/b>, und danach daf&uuml;r sorgen, dass die Callback-Funktionen der Ribbon-Elemente erneut aufgerufen werden. Das geht mit zwei einfachen Anweisungen ganz einfach &uuml;ber den Direktbereich. Zuvor m&uuml;ssen Sie allerdings die Anwendung noch einmal schlie&szlig;en und wieder &ouml;ffnen, damit das Ribbon neu initialisiert und somit auch die Variable <b>objRibbon_Main <\/b>gef&uuml;llt wird. Danach stellen wir erst den Wert von <b>intFunktionen <\/b>auf einen neuen Wert ein:<\/p>\n<pre>intFunktionen = 5<\/pre>\n<p>Dann sorgen wir durch den Aufruf der <b>Invalidate<\/b>-Methode des <b>IRibbonUI<\/b>-Elements <b>objRibbon_Main <\/b>daf&uuml;r, dass die Funktionen f&uuml;r die Callback-Attribute erneut aufgerufen werden:<\/p>\n<pre>objRibbon_Main.Invalidate<\/pre>\n<p>Das Ergebnis sehen sie in Bild 8. Nun ist nicht nur die Funktion mit dem Index <b>1<\/b>, der wir die erste Stelle in der bin&auml;ren Zahl f&uuml;r die freigeschalteten Funktionen zugewiesen haben, freigeschaltet, sondern auch noch die Funktion mit dem Index <b>3<\/b>, welche die dritte Stelle in der bin&auml;ren Zahl belebt (also nun <b>101 = 5<\/b>). Wenn wir alle Funktionen freischalten wollen, nutzen wir die folgenden beiden Anweisungen:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_02\/pic_1122_008.png\" alt=\"Ribbon nach &auml;nderung der freigeschalteten Funktionen\" width=\"424,7115\" height=\"186,7183\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Ribbon nach &auml;nderung der freigeschalteten Funktionen<\/span><\/b><\/p>\n<pre>intFunktionen = 7\r\nobjRibbon_Main.Invalidate<\/pre>\n<p>Das Ergebnis finden Sie in Bild 9.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_02\/pic_1122_009.png\" alt=\"Ribbon mit allen freigeschalteten Funktionen\" width=\"424,7115\" height=\"179,364\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Ribbon mit allen freigeschalteten Funktionen<\/span><\/b><\/p>\n<p>Sie k&ouml;nnen &uuml;brigens auch nur einzelne Elemente des Ribbons erneuern lassen. Dazu nutzen Sie die Methode <b>InvalidateControl <\/b>von <b>objRibbon_Main <\/b>und geben als Parameter den Namen des zu aktualisierenden Steuerelements an. Wenn Sie also etwa nur das <b>tab<\/b>-Element mit der &uuml;berschrift <b>Tab 3 <\/b>nach einer &auml;nderung von <b>intFunktion <\/b>erneuern wollen, nutzen Sie die folgenden beiden Anweisungen:<\/p>\n<pre>intFunktionen = 6\r\nobjRibbon_Main.InvalidateControl \"tab3\"<\/pre>\n<p>Auf diese Weise wird dann nur das Element <b>tab3 <\/b>ausgeblendet, die &uuml;brigen Elemente, die eigentlich auch ausgeblendet werden sollten (<b>btn3 <\/b>und <b>grp3<\/b>), bleiben sichtbar. Dies nur der Vollst&auml;ndigkeit halber &#8211; tats&auml;chlich macht es im Kontext dieses kleinen Beispiels keinen Sinn.<\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Dieser Beitrag hat gezeigt, wie Sie die Elemente des Ribbons in Abh&auml;ngigkeit von den freigeschalteten Funktionen aktivieren und deaktivieren beziehungsweise einblenden oder ausblenden k&ouml;nnen. Sinnvoll ist dies beispielsweise in Zusammenhang mit der L&ouml;sung aus dem Beitrag <b>Software freischalten per Schl&uuml;ssel <\/b>(<b>www.access-im-unternehmen.de\/1126<\/b>).<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>RibbonElementeAktivierenUndDeaktivieren.accdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/2A3CA1DE-1EDD-4AD0-BB0B-2E99AEAF0E74\/aiu_1122.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Im Beitrag &#8222;Software freischalten per Schl&uuml;ssel&#8220; haben wir gezeigt, wie Sie mit einem Freischaltschl&uuml;ssel eine Information &uuml;bergeben k&ouml;nnen, welche Funktionen einer Datenbank f&uuml;r den Benutzer mit dem Schl&uuml;ssel freigegeben sind und wie Sie etwa in einem Formular die Schaltfl&auml;chen aktivieren oder deaktivieren, die diese Funktionen aufrufen. Im vorliegenden Beitrag wollen wir uns anschauen, wie Sie die Schaltfl&auml;chen eines Ribbons abh&auml;ngig von den mit dem Freischaltschl&uuml;ssel &uuml;bergebenen Daten aktivieren oder deaktivieren k&ouml;nnen.<\/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":[66022018,662018,44000028],"tags":[],"class_list":["post-55001122","post","type-post","status-publish","format-standard","hentry","category-66022018","category-662018","category-Ergonomie_und_Benutzeroberflaeche"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Ribbon-Elemente aktivieren und deaktivieren - 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\/RibbonElemente_aktivieren_und_deaktivieren\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ribbon-Elemente aktivieren und deaktivieren\" \/>\n<meta property=\"og:description\" content=\"Im Beitrag &quot;Software freischalten per Schl&uuml;ssel&quot; haben wir gezeigt, wie Sie mit einem Freischaltschl&uuml;ssel eine Information &uuml;bergeben k&ouml;nnen, welche Funktionen einer Datenbank f&uuml;r den Benutzer mit dem Schl&uuml;ssel freigegeben sind und wie Sie etwa in einem Formular die Schaltfl&auml;chen aktivieren oder deaktivieren, die diese Funktionen aufrufen. Im vorliegenden Beitrag wollen wir uns anschauen, wie Sie die Schaltfl&auml;chen eines Ribbons abh&auml;ngig von den mit dem Freischaltschl&uuml;ssel &uuml;bergebenen Daten aktivieren oder deaktivieren k&ouml;nnen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/RibbonElemente_aktivieren_und_deaktivieren\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-13T21:18:42+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg06.met.vgwort.de\/na\/cc70337a34e24c7691fee4d62dcd877d\" \/>\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=\"12\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/RibbonElemente_aktivieren_und_deaktivieren\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/RibbonElemente_aktivieren_und_deaktivieren\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Ribbon-Elemente aktivieren und deaktivieren\",\"datePublished\":\"2020-05-13T21:18:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/RibbonElemente_aktivieren_und_deaktivieren\\\/\"},\"wordCount\":1939,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/RibbonElemente_aktivieren_und_deaktivieren\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/cc70337a34e24c7691fee4d62dcd877d\",\"articleSection\":[\"2\\\/2018\",\"2018\",\"Ergonomie und Benutzeroberfl\u00e4che\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/RibbonElemente_aktivieren_und_deaktivieren\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/RibbonElemente_aktivieren_und_deaktivieren\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/RibbonElemente_aktivieren_und_deaktivieren\\\/\",\"name\":\"Ribbon-Elemente aktivieren und deaktivieren - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/RibbonElemente_aktivieren_und_deaktivieren\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/RibbonElemente_aktivieren_und_deaktivieren\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/cc70337a34e24c7691fee4d62dcd877d\",\"datePublished\":\"2020-05-13T21:18:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/RibbonElemente_aktivieren_und_deaktivieren\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/RibbonElemente_aktivieren_und_deaktivieren\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/RibbonElemente_aktivieren_und_deaktivieren\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/cc70337a34e24c7691fee4d62dcd877d\",\"contentUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/cc70337a34e24c7691fee4d62dcd877d\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/RibbonElemente_aktivieren_und_deaktivieren\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ribbon-Elemente aktivieren und deaktivieren\"}]},{\"@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":"Ribbon-Elemente aktivieren und deaktivieren - 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\/RibbonElemente_aktivieren_und_deaktivieren\/","og_locale":"de_DE","og_type":"article","og_title":"Ribbon-Elemente aktivieren und deaktivieren","og_description":"Im Beitrag \"Software freischalten per Schl&uuml;ssel\" haben wir gezeigt, wie Sie mit einem Freischaltschl&uuml;ssel eine Information &uuml;bergeben k&ouml;nnen, welche Funktionen einer Datenbank f&uuml;r den Benutzer mit dem Schl&uuml;ssel freigegeben sind und wie Sie etwa in einem Formular die Schaltfl&auml;chen aktivieren oder deaktivieren, die diese Funktionen aufrufen. Im vorliegenden Beitrag wollen wir uns anschauen, wie Sie die Schaltfl&auml;chen eines Ribbons abh&auml;ngig von den mit dem Freischaltschl&uuml;ssel &uuml;bergebenen Daten aktivieren oder deaktivieren k&ouml;nnen.","og_url":"https:\/\/access-im-unternehmen.de\/RibbonElemente_aktivieren_und_deaktivieren\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-13T21:18:42+00:00","og_image":[{"url":"http:\/\/vg06.met.vgwort.de\/na\/cc70337a34e24c7691fee4d62dcd877d","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"12\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/RibbonElemente_aktivieren_und_deaktivieren\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/RibbonElemente_aktivieren_und_deaktivieren\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Ribbon-Elemente aktivieren und deaktivieren","datePublished":"2020-05-13T21:18:42+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/RibbonElemente_aktivieren_und_deaktivieren\/"},"wordCount":1939,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/RibbonElemente_aktivieren_und_deaktivieren\/#primaryimage"},"thumbnailUrl":"http:\/\/vg06.met.vgwort.de\/na\/cc70337a34e24c7691fee4d62dcd877d","articleSection":["2\/2018","2018","Ergonomie und Benutzeroberfl\u00e4che"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/RibbonElemente_aktivieren_und_deaktivieren\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/RibbonElemente_aktivieren_und_deaktivieren\/","url":"https:\/\/access-im-unternehmen.de\/RibbonElemente_aktivieren_und_deaktivieren\/","name":"Ribbon-Elemente aktivieren und deaktivieren - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/RibbonElemente_aktivieren_und_deaktivieren\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/RibbonElemente_aktivieren_und_deaktivieren\/#primaryimage"},"thumbnailUrl":"http:\/\/vg06.met.vgwort.de\/na\/cc70337a34e24c7691fee4d62dcd877d","datePublished":"2020-05-13T21:18:42+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/RibbonElemente_aktivieren_und_deaktivieren\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/RibbonElemente_aktivieren_und_deaktivieren\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/RibbonElemente_aktivieren_und_deaktivieren\/#primaryimage","url":"http:\/\/vg06.met.vgwort.de\/na\/cc70337a34e24c7691fee4d62dcd877d","contentUrl":"http:\/\/vg06.met.vgwort.de\/na\/cc70337a34e24c7691fee4d62dcd877d"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/RibbonElemente_aktivieren_und_deaktivieren\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Ribbon-Elemente aktivieren und deaktivieren"}]},{"@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\/55001122","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=55001122"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001122\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001122"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001122"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}