{"id":55000500,"date":"2026-06-01T00:00:00","date_gmt":"2026-07-28T15:08:59","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=500"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"BackstageBereich_von_Access_erweitern_Teil_2","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_2\/","title":{"rendered":"Backstage-Bereich von Access erweitern, Teil 2"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg08.met.vgwort.de\/na\/6cfa85d09ccc467e926395181f67ca65\" width=\"1\" height=\"1\" alt=\"\"><b>Im ersten Teil dieser Artikelserie haben wir den Backstage-Bereich von Access mit eigenen Befehlen und einer Registerkarte ausgestattet, die Steuerelemente wie <b>editBox<\/b>, <b>checkBox<\/b>, <b>dropDown<\/b>, <b>comboBox<\/b> und <b>radioGroup<\/b> enth&auml;lt. In diesem zweiten Teil gehen wir einen Schritt weiter: Wir lernen die Layout-Elemente <b>groupBox<\/b>, <b>layoutContainer<\/b> und <b>imageControl<\/b> kennen und bauen mit <b>taskFormGroup<\/b> und <b>taskGroup<\/b> komplexere Aufgabenbereiche auf.<\/b><\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele zu diesem Artikel findest Du in der Datenbank <b>BackstageBereichProgrammieren.accdb<\/b>. Die Tabelle <b>USysRibbons<\/b> enth&auml;lt unter dem Eintrag <b>BackstageRef<\/b> bereits alle drei Registerkarten.<\/p>\n<p>Die Callback-Prozeduren aus dem Modul <b>mdlBackstage<\/b> funktionieren auch f&uuml;r die neuen Elemente ohne &Auml;nderungen, da wir <b>control.Id<\/b> als universellen Schl&uuml;ssel verwenden.<\/p>\n<h2>&Uuml;bersicht der drei Registerkarten<\/h2>\n<p>Die Backstage-Definition aus dem ersten Teil enth&auml;lt bisher eine Registerkarte <b>Steuerelemente (tab)<\/b> mit den grundlegenden Eingabe- und Auswahl-Steuerelementen.<\/p>\n<p>In diesem Artikel erg&auml;nzen wir zwei weitere Registerkarten f&uuml;r unterschiedliche Anwendungszwecke: <b>Layout (tab)<\/b> demonstriert die visuelle Anordnung von Steuerelementen mit <b>groupBox<\/b> und <b>layoutContainer<\/b>. <b>Aufgaben (tab)<\/b> zeigt die Verwendung von <b>taskFormGroup<\/b> und <b>taskGroup<\/b> f&uuml;r aufgabenorientierte Benutzeroberfl&auml;chen.<\/p>\n<h2>Die Registerkarte &#8220;Layout&#8221;<\/h2>\n<p>Die zweite Registerkarte widmet sich den Layout-Elementen. W&auml;hrend die Steuerelemente aus dem ersten Teil ihren Platz automatisch untereinander erhalten, bieten <b>groupBox<\/b> und <b>layoutContainer<\/b> zus&auml;tzliche M&ouml;glichkeiten, die Anordnung gezielt zu steuern.<\/p>\n<p>Den vollst&auml;ndigen XML-Code findest Du in der Tabelle <b>USysRibbons<\/b> unter <b>BackstageRef<\/b> (siehe Bild 1). Wir erl&auml;utern ihn im Folgenden schrittweise.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_03\/pic_500_001.png\" alt=\"Definition des zweiten Backstage-Tabs\" width=\"649,627\" height=\"731,7635\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Definition des zweiten Backstage-Tabs<\/span><\/b><\/p>\n<p>Die Registerkarte selbst legen wir wie gewohnt als <b>tab<\/b>-Element mit <b>firstColumn<\/b> und <b>secondColumn<\/b> an. Du findest diesen Bereich gemeinsam mit den anderen neuen Tabs in der Tabelle <b>USysRibbons<\/b> f&uuml;r den Eintrag mit dem Wert <b>BackstageRef <\/b>im Feld <b>RibbonName<\/b>.<\/p>\n<p>Diesmal f&uuml;gen wir das Tab vor dem eingebauten Element <b>FileSave <\/b>ein:<\/p>\n<pre>&lt;tab id=\"tabLayout\" label=\"Layout (tab)\"     insertBeforeMso=\"FileSave\"     title=\"Verschiedene Layouts\"&gt;\r\n  &lt;firstColumn&gt;\r\n    ...\r\n  &lt;\/firstColumn&gt;\r\n  &lt;secondColumn&gt;\r\n    ...\r\n  &lt;\/secondColumn&gt;\r\n&lt;\/tab&gt;<\/pre>\n<h2>Das groupBox-Element<\/h2>\n<p>Mit <b>groupBox<\/b> fassen wir mehrere Steuerelemente in einem beschrifteten Rahmen zusammen. Das Element besitzt ein <b>label<\/b>-Attribut, das als &Uuml;berschrift des Rahmens angezeigt wird.<\/p>\n<p>Im Inneren k&ouml;nnen alle Steuerelemente platziert werden, die auch in <b>topItems<\/b> und <b>bottomItems<\/b> erlaubt sind &#8211; also <b>editBox<\/b>, <b>checkBox<\/b>, <b>radioGroup<\/b> und alle weiteren aus der Gruppe <b>EG_GroupControls<\/b>.<\/p>\n<p>In der <b>firstColumn<\/b> der Layout-Registerkarte platzieren wir eine Gruppe mit zwei <b>groupBox<\/b>-Elementen:<\/p>\n<pre>&lt;group id=\"grpGroupBox\" label=\"groupBox-Demo (group)\"&gt;\r\n  &lt;topItems&gt;\r\n    &lt;groupBox id=\"gbServer\"         label=\"Serveroptionen (groupBox)\"&gt;\r\n      &lt;editBox id=\"txtHost\" label=\"Hostname (editBox)\"         getText=\"getText\" onChange=\"onChange\"         sizeString=\"yyyyyyyyyyyyyy\"\/&gt;\r\n      &lt;editBox id=\"txtPort\" label=\"Port (editBox)\"         getText=\"getText\" onChange=\"onChange\"         sizeString=\"yyyyy\"\/&gt;\r\n    &lt;\/groupBox&gt;\r\n    &lt;groupBox id=\"gbAuth\"         label=\"Authentifizierung (groupBox)\"&gt;\r\n      &lt;radioGroup id=\"rgAuth\" label=\"Methode (radioGroup)\" \r\n          getSelectedItemIndex=\"getSelectedItemIndex\" \r\n          onAction=\"onActionRadio\"&gt;\r\n        &lt;radioButton id=\"rbWindows\" \r\n          label=\"Windows (radioButton)\"\/&gt;\r\n        &lt;radioButton id=\"rbSQL\" \r\n          label=\"SQL Server (radioButton)\"\/&gt;\r\n      &lt;\/radioGroup&gt;\r\n    &lt;\/groupBox&gt;\r\n  &lt;\/topItems&gt;\r\n&lt;\/group&gt;<\/pre>\n<p>Die erste <b>groupBox<\/b> mit der Beschriftung &#8220;Serveroptionen&#8221; enth&auml;lt zwei <b>editBox<\/b>-Elemente f&uuml;r Hostname und Port.<\/p>\n<p>Die zweite <b>groupBox<\/b> &#8220;Authentifizierung&#8221; enth&auml;lt eine <b>radioGroup<\/b> mit zwei Optionen.<\/p>\n<p>Beide verwenden die Callback-Funktionen aus dem ersten Teil ohne &Auml;nderungen.<\/p>\n<p>Laut XSD-Schema unterst&uuml;tzt <b>groupBox<\/b> neben <b>id<\/b> und <b>label<\/b> auch das Attribut <b>expand<\/b>. Damit steuern wir, ob sich der Rahmen horizontal, vertikal oder in beide Richtungen ausdehnt. Die m&ouml;glichen Werte sind <b>horizontal<\/b>, <b>vertical<\/b>, <b>both<\/b> und <b>neither<\/b>.<\/p>\n<p>Das Ergebnis erscheint wie in Bild 2.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_03\/pic_500_002.png\" alt=\"Eine Gruppe in der ersten Spalte eines tab-Elements\" width=\"499,6267\" height=\"483,3787\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Eine Gruppe in der ersten Spalte eines tab-Elements<\/span><\/b><\/p>\n<h2>group-Element farbig hinterlegen<\/h2>\n<p>Das <b>group<\/b>-Element k&ouml;nnen wir mit dem Attribut <b>style <\/b>und den Werten <b>warning <\/b>oder <b>error <\/b>auch farbig hinterlegen. Dazu &auml;ndern wir es beispielsweise  wie folgt:<\/p>\n<pre>&lt;group id=\"grpGroupBox\"   label=\"groupBox-Demo (group)\" \r\n  style=\"warning\"&gt;<\/pre>\n<p>Dies sieht wie in Bild 3 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_03\/pic_500_003.png\" alt=\"Farbig hinterlegtes group-Element\" width=\"599,6265\" height=\"331,7935\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Farbig hinterlegtes group-Element<\/span><\/b><\/p>\n<h2>Das layoutContainer-Element<\/h2>\n<p>W&auml;hrend <b>groupBox<\/b> einen sichtbaren Rahmen erzeugt, dient <b>layoutContainer<\/b> ausschlie&szlig;lich der Anordnung.<\/p>\n<p>Es erzeugt keinen sichtbaren Rahmen, sondern bestimmt &uuml;ber das Attribut <b>layoutChildren<\/b>, ob die enthaltenen Steuerelemente horizontal nebeneinander oder vertikal untereinander angeordnet werden. Die beiden m&ouml;glichen Werte sind <b>horizontal<\/b> und <b>vertical<\/b>.<\/p>\n<p>In der <b>secondColumn<\/b> der Layout-Registerkarte demonstrieren wir beide Varianten:<\/p>\n<pre>&lt;group id=\"grpLayoutCont\"     label=\"layoutContainer-Demo (group)\"&gt;\r\n  &lt;topItems&gt;\r\n    &lt;layoutContainer id=\"lcHorizontal\" \r\n        layoutChildren=\"horizontal\"&gt;\r\n      &lt;button id=\"btnExport\" label=\"Exportieren (button)\" \r\n        imageMso=\"FileSave\" onAction=\"onAction\"\r\n        style=\"normal\"\/&gt;\r\n      &lt;button id=\"btnImport\" label=\"Importieren (button)\" \r\n        imageMso=\"FileSave\" onAction=\"onAction\" \r\n        style=\"normal\"\/&gt;\r\n      &lt;button id=\"btnReset\" label=\"Zuruecksetzen (button)\" \r\n        imageMso=\"FileSave\" onAction=\"onAction\" \r\n        style=\"borderless\"\/&gt;\r\n    &lt;\/layoutContainer&gt;\r\n    &lt;layoutContainer id=\"lcVertikal\" \r\n        layoutChildren=\"vertical\"&gt;\r\n      &lt;labelControl id=\"lblInfo1\" \r\n        label=\"Version: 1.0 (labelControl)\"\/&gt;\r\n      &lt;labelControl id=\"lblInfo2\" \r\n        label=\"Erstellt: 04.03.2026 (labelControl)\"\/&gt;\r\n      &lt;imageControl id=\"imgLogo\" imageMso=\"FileSave\"\/&gt;\r\n    &lt;\/layoutContainer&gt;\r\n  &lt;\/topItems&gt;\r\n&lt;\/group&gt;<\/pre>\n<p>Der erste <b>layoutContainer<\/b> mit <b>layoutChildren=&#8221;horizontal&#8221;<\/b> ordnet drei Buttons nebeneinander an.<\/p>\n<p>Hier f&auml;llt das Attribut <b>style<\/b> der Buttons auf: Im Backstage-Bereich unterst&uuml;tzen Buttons die Werte <b>normal<\/b> (Standarddarstellung mit Rahmen), <b>borderless<\/b> (ohne sichtbaren Rahmen) und <b>large<\/b> (gro&szlig;e Darstellung mit Beschriftung unterhalb des Icons).<\/p>\n<p>Der zweite <b>layoutContainer<\/b> mit <b>layoutChildren=&#8221;vertical&#8221;<\/b> zeigt zwei <b>labelControl<\/b>-Elemente und ein <b>imageControl<\/b> untereinander. Ohne den <b>layoutContainer<\/b> w&auml;re das Ergebnis in diesem Fall identisch, da Steuerelemente standardm&auml;&szlig;ig vertikal angeordnet werden. Der Unterschied wird deutlich, wenn man den Wert auf <b>horizontal<\/b> &auml;ndert.<\/p>\n<p>Neben <b>layoutChildren<\/b> unterst&uuml;tzt <b>layoutContainer<\/b> laut XSD die Attribute <b>align<\/b> und <b>expand<\/b>. Mit <b>align<\/b> bestimmen wir die Ausrichtung des Containers innerhalb seines &uuml;bergeordneten Elements.<\/p>\n<p>Die Werte entsprechen denen von <b>alignLabel<\/b>: <b>topLeft<\/b>, <b>top<\/b>, <b>topRight<\/b>, <b>left<\/b>, <b>center<\/b>, <b>right<\/b>, <b>bottomLeft<\/b>, <b>bottom<\/b> und <b>bottomRight<\/b> (siehe Bild 4). <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_03\/pic_500_004.png\" alt=\"Die layoutContainer-Elemente in der secondColumn der Layout-Registerkarte\" width=\"649,627\" height=\"370,7507\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Die layoutContainer-Elemente in der secondColumn der Layout-Registerkarte<\/span><\/b><\/p>\n<h2>Das imageControl-Element<\/h2>\n<p>Das <b>imageControl<\/b>-Element zeigt ein Bild an, ohne dass der Benutzer damit interagieren kann.<\/p>\n<p>In unserem Beispiel verwenden wir das Attribut <b>imageMso<\/b>, um eines der eingebauten Office-Icons anzuzeigen:<\/p>\n<pre>&lt;imageControl id=\"imgLogo\" imageMso=\"FileSave\"\/&gt;<\/pre>\n<p>Alternativ kann man &uuml;ber das Attribut <b>image<\/b> ein eigenes Bild referenzieren oder mit dem Callback <b>getImage<\/b> das Bild dynamisch zur Laufzeit bereitstellen. Zus&auml;tzlich unterst&uuml;tzt <b>imageControl<\/b> die Attribute <b>altText<\/b> und <b>getAltText<\/b> f&uuml;r alternativen Text sowie <b>enabled<\/b> und <b>visible<\/b> zur Steuerung der Sichtbarkeit.<\/p>\n<p>F&uuml;r die Anzeige benutzerdefinierter Bilder ist zus&auml;tzlicher Code notwendig. Wie das gelingt, zeigen wir in einem weiteren Artikel namens <b>Eigene Icons im Ribbon anzeigen <\/b>(<b>www.vbentwickler.de\/501<\/b>).<\/p>\n<h2>Die Registerkarte &#8220;Aufgaben&#8221;<\/h2>\n<p>Die dritte Registerkarte zeigt die aufgabenorientierten Elemente des Backstage-Bereichs. Diese eignen sich besonders f&uuml;r Oberfl&auml;chen, in denen der Benutzer eine Aufgabe ausw&auml;hlt und dann die zugeh&ouml;rigen Einstellungen bearbeitet &#8211; &auml;hnlich der Backstage-Ansicht von Office selbst.<\/p>\n<p>Die Registerkarte enth&auml;lt in der <b>firstColumn<\/b> ein <b>taskFormGroup<\/b> und in der <b>secondColumn<\/b> ein <b>taskGroup<\/b>:<\/p>\n<pre>&lt;tab id=\"tabAufgaben\" label=\"Aufgaben (tab)\"     insertBeforeMso=\"FileSave\"     title=\"Aufgabenbereiche im Backstage-Bereich\"&gt;\r\n  &lt;firstColumn&gt;\r\n    &lt;taskFormGroup ...&gt;\r\n      ...\r\n    &lt;\/taskFormGroup&gt;\r\n  &lt;\/firstColumn&gt;\r\n  &lt;secondColumn&gt;\r\n    &lt;taskGroup ...&gt;\r\n      ...\r\n    &lt;\/taskGroup&gt;\r\n  &lt;\/secondColumn&gt;\r\n&lt;\/tab&gt;<\/pre>\n<p>Wichtig: Laut XSD erlaubt die <b>firstColumn<\/b> entweder ein <b>taskFormGroup<\/b> oder beliebig viele <b>group<\/b>-\/<b>taskGroup<\/b>-Elemente &#8211; aber nicht beides gemischt. Sobald wir ein <b>taskFormGroup<\/b> verwenden, d&uuml;rfen keine <b>group<\/b>-Elemente auf derselben Ebene stehen. Die <b>secondColumn<\/b> kennt kein <b>taskFormGroup<\/b>; dort sind nur <b>group<\/b> und <b>taskGroup<\/b> erlaubt.<\/p>\n<h2>Das taskFormGroup-Element<\/h2>\n<p>Ein <b>taskFormGroup<\/b> erzeugt eine Navigation auf der linken Seite, in der der Benutzer zwischen verschiedenen Aufgaben w&auml;hlen kann. Beim Anklicken einer Aufgabe erscheinen auf der rechten Seite die zugeh&ouml;rigen Steuerelemente.<\/p>\n<p>Die Hierarchie lautet: <b>taskFormGroup<\/b> enth&auml;lt <b>category<\/b>-Elemente, diese enthalten <b>task<\/b>-Elemente, und jedes <b>task<\/b>-Element enth&auml;lt ein oder mehrere <b>group<\/b>-Elemente mit den eigentlichen Steuerelementen.<\/p>\n<p>In unserem Beispiel definieren wir zwei Kategorien:<\/p>\n<pre>&lt;taskFormGroup id=\"tfgOptionen\"     label=\"Anwendungsoptionen (taskFormGroup)\"&gt;\r\n  &lt;category id=\"catKonto\" label=\"Kontodaten (category)\"&gt;\r\n    &lt;task id=\"taskKonto\" label=\"Konto bearbeiten (task)\"      description=\"Kontodaten anzeigen und aendern\"         imageMso=\"FileSave\"&gt;\r\n      &lt;group id=\"grpTFGKonto\" label=\"Kontodaten (group)\"&gt;\r\n        &lt;topItems&gt;\r\n          &lt;editBox id=\"txtKontoname\"             label=\"Kontoname (editBox)\" getText=\"getText\" \r\n            onChange=\"onChange\" \r\n            sizeString=\"yyyyyyyyyyyyyy\"\/&gt;\r\n          &lt;editBox id=\"txtEmail\" label=\"E-Mail (editBox)\" \r\n            getText=\"getText\" onChange=\"onChange\" \r\n            sizeString=\"yyyyyyyyyyyyyy\"\/&gt;\r\n        &lt;\/topItems&gt;\r\n      &lt;\/group&gt;\r\n    &lt;\/task&gt;\r\n  &lt;\/category&gt;\r\n  &lt;category id=\"catPfade\" label=\"Pfade (category)\"&gt;\r\n    &lt;task id=\"taskPfade\" label=\"Pfade festlegen (task)\" \r\n        description=\"Export- und Importpfade konfigurieren\" \r\n        imageMso=\"FileSave\"&gt;\r\n      &lt;group id=\"grpTFGPfade\" label=\"Pfade (group)\"&gt;\r\n        &lt;topItems&gt;\r\n          &lt;editBox id=\"txtExportpfad\" \r\n            label=\"Exportpfad (editBox)\" getText=\"getText\" \r\n            onChange=\"onChange\" \r\n            sizeString=\"yyyyyyyyyyyyyy\"\/&gt;\r\n          &lt;editBox id=\"txtImportpfad\" \r\n            label=\"Importpfad (editBox)\" getText=\"getText\" \r\n            onChange=\"onChange\" \r\n            sizeString=\"yyyyyyyyyyyyyy\"\/&gt;\r\n        &lt;\/topItems&gt;\r\n      &lt;\/group&gt;\r\n    &lt;\/task&gt;\r\n  &lt;\/category&gt;\r\n&lt;\/taskFormGroup&gt;<\/pre>\n<p>Die Kategorie &#8220;Kontodaten&#8221; erscheint als &Uuml;berschrift in der Aufgabenliste. Darunter wird die Aufgabe &#8220;Konto bearbeiten&#8221; mit ihrem Icon und der Beschreibung angezeigt.<\/p>\n<p>Klickt der Benutzer auf diese Aufgabe, erscheinen rechts davon die <b>editBox<\/b>-Felder f&uuml;r Kontoname und E-Mail. Die zweite Kategorie &#8220;Pfade&#8221; funktioniert nach dem gleichen Prinzip.<\/p>\n<p>Jedes <b>task<\/b>-Element kann beliebig viele <b>group<\/b>-Elemente enthalten. Diese <b>group<\/b>-Elemente sind vom gleichen Typ wie die Gruppen in <b>firstColumn<\/b> und <b>secondColumn<\/b> &#8211; sie unterst&uuml;tzen also <b>primaryItem<\/b>, <b>topItems<\/b>, <b>bottomItems<\/b>, <b>helperText<\/b> und alle Steuerelemente.<\/p>\n<p>Das <b>taskFormGroup<\/b> selbst unterst&uuml;tzt laut XSD die Attribute <b>label<\/b>, <b>visible<\/b>, <b>helperText<\/b>, <b>showLabel<\/b> und <b>allowedTaskSizes<\/b>.<\/p>\n<p>Das Attribut <b>allowedTaskSizes<\/b> steuert die Darstellungsgr&ouml;&szlig;e der Aufgaben-Eintr&auml;ge. Die m&ouml;glichen Werte sind <b>largeMediumSmall<\/b>, <b>largeMedium<\/b>, <b>large<\/b>, <b>mediumSmall<\/b>, <b>medium<\/b> und <b>small<\/b> (siehe Bild 5).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_03\/pic_500_005.png\" alt=\"Eine taskFormGroup mit ihren Elementen\" width=\"699,627\" height=\"419,0747\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Eine taskFormGroup mit ihren Elementen<\/span><\/b><\/p>\n<p>In sehen Bild 6 wir, wie die Elemente f&uuml;r das <b>category<\/b>-Element <b>Pfade (category) <\/b>eingeblendet wird.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_03\/pic_500_006.png\" alt=\"Elemente der zweiten taskGroup\" width=\"649,627\" height=\"400,6581\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Elemente der zweiten taskGroup<\/span><\/b><\/p>\n<h2>Das taskGroup-Element<\/h2>\n<p>W&auml;hrend <b>taskFormGroup<\/b> eine Aufgabenliste mit eingebetteten Formularen erzeugt, zeigt <b>taskGroup<\/b> eine einfache Aufgabenliste, bei der jeder Eintrag direkt eine Aktion ausl&ouml;st.<\/p>\n<p>Die <b>task<\/b>-Elemente innerhalb eines <b>taskGroup<\/b> enthalten keine <b>group<\/b>-Unterelemente, sondern reagieren &uuml;ber den Callback <b>onAction<\/b> direkt auf den Klick des Benutzers. In der <b>secondColumn<\/b> platzieren wir ein <b>taskGroup<\/b> mit zwei Kategorien:<\/p>\n<pre>&lt;taskGroup id=\"tgAktionen\" label=\"Aktionen (taskGroup)\" \r\n    allowedTaskSizes=\"largeMediumSmall\"&gt;\r\n  &lt;category id=\"catWartung\" label=\"Wartung (category)\"&gt;\r\n    &lt;task id=\"taskCompact\" label=\"Komprimieren (task)\" \r\n      description=\"Datenbank komprimieren und reparieren\" \r\n      imageMso=\"FileSave\" onAction=\"onAction\"\/&gt;\r\n    &lt;task id=\"taskBackup\" label=\"Sicherung (task)\" \r\n      description=\"Sicherungskopie erstellen\" \r\n      imageMso=\"FileSave\" onAction=\"onAction\"\/&gt;\r\n  &lt;\/category&gt;\r\n  &lt;category id=\"catDaten\" label=\"Daten (category)\"&gt;\r\n    &lt;task id=\"taskDatenExport\" \r\n      label=\"Daten exportieren (task)\" \r\n        description=\"Alle Tabellen als CSV exportieren\" \r\n        imageMso=\"FileSave\" onAction=\"onAction\"\/&gt;\r\n  &lt;\/category&gt;\r\n&lt;\/taskGroup&gt;<\/pre>\n<p>Die Kategorie &#8220;Wartung&#8221; enth&auml;lt zwei Aufgaben: &#8220;Komprimieren&#8221; und &#8220;Sicherung&#8221;. Die Kategorie &#8220;Daten&#8221; enth&auml;lt eine einzelne Aufgabe zum Exportieren.<\/p>\n<p>Jedes <b>task<\/b>-Element besitzt ein <b>label<\/b>, eine <b>description<\/b> (die als Untertitel angezeigt wird), ein <b>imageMso<\/b> und einen <b>onAction<\/b>-Callback.<\/p>\n<p>Das Attribut <b>allowedTaskSizes=&#8221;largeMediumSmall&#8221;<\/b> teilt Access mit, dass die Aufgaben je nach verf&uuml;gbarem Platz in verschiedenen Gr&ouml;&szlig;en dargestellt werden d&uuml;rfen. Bei wenig Platz schrumpfen die Eintr&auml;ge automatisch auf die kleinste erlaubte Darstellung (siehe Bild 7).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_03\/pic_500_007.png\" alt=\"Die taskGroup in der secondColumn der Aufgaben-Registerkarte\" width=\"700\" height=\"296,6101\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Die taskGroup in der secondColumn der Aufgaben-Registerkarte<\/span><\/b><\/p>\n<h2>Unterschied zwischen taskFormGroup und taskGroup<\/h2>\n<p>Die beiden Elemente sehen auf den ersten Blick &auml;hnlich aus, unterscheiden sich aber grundlegend in ihrem Verhalten.<\/p>\n<p>Das <b>taskFormGroup<\/b> ist f&uuml;r Szenarien gedacht, in denen der Benutzer eine Aufgabe ausw&auml;hlt und dann ein Formular mit Steuerelementen bearbeitet &#8211; die Aufgabe &ouml;ffnet sozusagen eine Detailansicht.<\/p>\n<p>Daher enth&auml;lt jedes <b>task<\/b>-Element im <b>taskFormGroup<\/b> ein oder mehrere <b>group<\/b>-Elemente mit Steuerelementen.<\/p>\n<p>Das <b>taskGroup<\/b> hingegen ist f&uuml;r direkte Aktionen gedacht: Ein Klick auf eine Aufgabe l&ouml;st sofort den <b>onAction<\/b>-Callback aus, ohne dass eine Detailansicht erscheint. Die <b>task<\/b>-Elemente im <b>taskGroup<\/b> enthalten keine <b>group<\/b>-Unterelemente.<\/p>\n<p>Beide Elementtypen unterst&uuml;tzen <b>category<\/b>-Elemente zur Gliederung und das Attribut <b>allowedTaskSizes<\/b> zur Steuerung der Darstellungsgr&ouml;&szlig;e.<\/p>\n<p>Das <b>taskFormGroup<\/b> ist ausschlie&szlig;lich in der <b>firstColumn<\/b> erlaubt, w&auml;hrend <b>taskGroup<\/b> sowohl in der <b>firstColumn<\/b> als auch in der <b>secondColumn<\/b> stehen darf.<\/p>\n<h2>Die Backstage-Callbacks im &Uuml;berblick<\/h2>\n<p>Alle Steuerelemente aus beiden Artikelteilen verwenden dieselben Callback-Prozeduren im Modul <b>mdlBackstage<\/b>.<\/p>\n<p>Der Schl&uuml;ssel dazu ist die konsequente Verwendung von <b>control.Id<\/b> als Bezeichner. Damit k&ouml;nnen wir mit wenigen universellen Prozeduren beliebig viele Steuerelemente bedienen, ohne f&uuml;r jedes einen eigenen <b>Select Case<\/b>-Block anlegen zu m&uuml;ssen.<\/p>\n<p>Ein wichtiger Unterschied zum Ribbon: Die Backstage-Callbacks verwenden f&uuml;r R&uuml;ckgabewerte einen <b>ByRef<\/b>-Parameter statt eines Funktionsr&uuml;ckgabewerts. Die Funktion <b>getText<\/b> zum Beispiel gibt den Wert nicht &uuml;ber <b>getText = &#8230;<\/b> zur&uuml;ck, sondern setzt den &uuml;bergebenen Parameter <b>text<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>getText(control<span style=\"color:blue;\"> As <\/span>IRibbonControl, _\r\n        ByRef text)\r\n    text = GetSetting(\"Backstage-Beispiel\", \"Optionen\", _\r\n        control.Id, \"\")\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p>Dasselbe gilt f&uuml;r <b>getPressed<\/b> und <b>getSelectedItemIndex<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>getPressed(control<span style=\"color:blue;\"> As <\/span>IRibbonControl, _\r\n        ByRef returnValue)\r\n    returnValue = GetSetting(\"Backstage-Beispiel\", _\r\n        \"Optionen\", control.Id, \"0\")\r\n<span style=\"color:blue;\">End Function<\/span>\r\n<span style=\"color:blue;\">Public Function <\/span>getSelectedItemIndex(control<span style=\"color:blue;\"> As <\/span>_\r\n        IRibbonControl, ByRef index)\r\n    index = CLng(GetSetting(\"Backstage-Beispiel\", _\r\n        \"Optionen\", control.Id, \"0\"))\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p>Die <b>ByRef<\/b>-Parameter sind bewusst ohne Typangabe deklariert, also als <b>Variant<\/b>. Access &uuml;bergibt hier intern einen Variant-Wert, den wir mit dem gew&uuml;nschten Ergebnis bef&uuml;llen.<\/p>\n<p>Die Prozeduren f&uuml;r &Auml;nderungen verwenden dagegen die gewohnte Syntax mit typisierten Parametern:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>onChange(control<span style=\"color:blue;\"> As <\/span>IRibbonControl, _\r\n        text<span style=\"color:blue;\"> As String<\/span>)\r\n    SaveSetting \"Backstage-Beispiel\", \"Optionen\", _\r\n        control.Id, text\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Public Sub <\/span>onActionToggle(control<span style=\"color:blue;\"> As <\/span>IRibbonControl, _\r\n        bolPressed<span style=\"color:blue;\"> As Boolean<\/span>)\r\n    SaveSetting \"Backstage-Beispiel\", \"Optionen\", _\r\n        control.Id, bolPressed\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Public Sub <\/span>onActionDropDown(control<span style=\"color:blue;\"> As <\/span>IRibbonControl, _\r\n        selectedID<span style=\"color:blue;\"> As String<\/span>, selectedIndex<span style=\"color:blue;\"> As Integer<\/span>)\r\n    SaveSetting \"Backstage-Beispiel\", \"Optionen\", _\r\n        control.Id, CStr(selectedIndex)\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Public Sub <\/span>onActionRadio(control<span style=\"color:blue;\"> As <\/span>IRibbonControl, _\r\n        selectedID<span style=\"color:blue;\"> As String<\/span>, selectedIndex<span style=\"color:blue;\"> As Long<\/span>)\r\n    SaveSetting \"Backstage-Beispiel\", \"Optionen\", _\r\n        control.Id, CStr(selectedIndex)\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Die Callbacks <b>onShow<\/b> und <b>onHide<\/b> des <b>backstage<\/b>-Elements erhalten im Gegensatz zu allen anderen Callbacks keinen <b>control<\/b>-Parameter:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>onShow()\r\n    <span style=\"color:blue;\">Debug.Print<\/span> \"Backstage geoeffnet\"\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Public Sub <\/span>onHide()\r\n    <span style=\"color:blue;\">Debug.Print<\/span> \"Backstage geschlossen\"\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Verwendet man hier f&auml;lschlicherweise die Ribbon-Signatur mit einem <b>control As IRibbonControl<\/b>-Parameter, f&uuml;hrt das zu einem stummen Fehler: Access kann dann keinen einzigen Callback aus dem Modul aufl&ouml;sen, und die Steuerelemente im Backstage-Bereich werden nicht angezeigt.<\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Mit den Layout-Elementen <b>groupBox<\/b> und <b>layoutContainer<\/b> k&ouml;nnen wir die Anordnung der Steuerelemente im Backstage-Bereich gezielt steuern.<\/p>\n<p>Das <b>imageControl<\/b> erg&auml;nzt die Palette um die M&ouml;glichkeit, Bilder und Icons einzubetten.<\/p>\n<p>Die aufgabenorientierten Elemente <b>taskFormGroup<\/b> und <b>taskGroup<\/b> er&ouml;ffnen eine weitere Gestaltungsdimension: Mit ihnen lassen sich Backstage-Seiten aufbauen, die an die Optionen-Dialoge von Office erinnern.<\/p>\n<p>Zusammen mit den Steuerelementen aus dem ersten Teil steht damit das vollst&auml;ndige Repertoire f&uuml;r eigene Backstage-Seiten in Access zur Verf&uuml;gung.<\/p>\n<p>Im n&auml;chsten Schritt w&auml;re es denkbar, die Steuerelemente mit dynamischen Daten aus Tabellen oder externen Quellen zu bef&uuml;llen &#8211; etwa &uuml;ber die Callbacks <b>getItemCount<\/b>, <b>getItemLabel<\/b> und <b>getItemID<\/b>, die <b>dropDown<\/b> und <b>comboBox<\/b> f&uuml;r die dynamische Bef&uuml;llung zur Laufzeit bereitstellen.<\/p>\n<p>In einem weiteren Artikel namens <b>Eigene Icons in Ribbon und Backstage anzeigen <\/b>(<b>www.vbentwickler.de\/501<\/b>) zeigen wir, wie Du eigene Icons zum Backstage-Bereich und auch zum Ribbon hinzuf&uuml;gen kannst.<\/p>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>BackstageBereichProgrammieren_Teil2.accdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/13D2561C-553E-49B9-96E6-BFC6402E6670\/vbe_500.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Im ersten Teil dieser Artikelserie haben wir den Backstage-Bereich von Access mit eigenen Befehlen und einer Registerkarte ausgestattet, die Steuerelemente wie editBox, checkBox, dropDown, comboBox und radioGroup enth&auml;lt. In diesem zweiten Teil gehen wir einen Schritt weiter: Wir lernen die Layout-Elemente groupBox, layoutContainer und imageControl kennen und bauen mit taskFormGroup und taskGroup komplexere Aufgabenbereiche auf.<\/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":[662026,66032026,44000026,44000036,44000033],"tags":[],"yst_prominent_words":[],"class_list":["post-55000500","post","type-post","status-publish","format-standard","hentry","category-662026","category-66032026","category-Outlook_programmieren","category-Ribbon_programmieren","category-Visual_Basic_Programmierung"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"Im ersten Teil dieser Artikelserie haben wir den Backstage-Bereich von Access mit eigenen Befehlen und einer Registerkarte ausgestattet, die Steuerelemente wie editBox, checkBox, dropDown, comboBox und radioGroup enth\u00e4lt. In diesem zweiten Teil gehen wir einen Schritt weiter: Wir lernen die Layout-Elemente groupBox, layoutContainer und imageControl kennen und bauen mit taskFormGroup und taskGroup komplexere Aufgabenbereiche auf.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Andr\u00e9 Minhorst\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_2\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Backstage-Bereich von Access erweitern, Teil 2 - Visual Basic Entwickler\" \/>\n\t\t<meta property=\"og:description\" content=\"Im ersten Teil dieser Artikelserie haben wir den Backstage-Bereich von Access mit eigenen Befehlen und einer Registerkarte ausgestattet, die Steuerelemente wie editBox, checkBox, dropDown, comboBox und radioGroup enth\u00e4lt. In diesem zweiten Teil gehen wir einen Schritt weiter: Wir lernen die Layout-Elemente groupBox, layoutContainer und imageControl kennen und bauen mit taskFormGroup und taskGroup komplexere Aufgabenbereiche auf.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_2\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-07-28T15:08:59+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"-001-11-30T00:00:00+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Backstage-Bereich von Access erweitern, Teil 2 - Visual Basic Entwickler\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Im ersten Teil dieser Artikelserie haben wir den Backstage-Bereich von Access mit eigenen Befehlen und einer Registerkarte ausgestattet, die Steuerelemente wie editBox, checkBox, dropDown, comboBox und radioGroup enth\u00e4lt. In diesem zweiten Teil gehen wir einen Schritt weiter: Wir lernen die Layout-Elemente groupBox, layoutContainer und imageControl kennen und bauen mit taskFormGroup und taskGroup komplexere Aufgabenbereiche auf.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_2\\\/#blogposting\",\"name\":\"Backstage-Bereich von Access erweitern, Teil 2 - Visual Basic Entwickler\",\"headline\":\"Backstage-Bereich von Access erweitern, Teil 2\",\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/6cfa85d09ccc467e926395181f67ca65\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_2\\\/#articleImage\"},\"datePublished\":\"2026-06-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"inLanguage\":\"de-DE\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_2\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_2\\\/#webpage\"},\"articleSection\":\"2026, 3\\\/2026, Outlook programmieren, Ribbon programmieren, Visual Basic Programmierung\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_2\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vbentwickler.de\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/#listItem\",\"name\":\"2026\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/#listItem\",\"position\":2,\"name\":\"2026\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/3\\\/2026\\\/#listItem\",\"name\":\"3\\\/2026\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/3\\\/2026\\\/#listItem\",\"position\":3,\"name\":\"3\\\/2026\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/3\\\/2026\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_2\\\/#listItem\",\"name\":\"Backstage-Bereich von Access erweitern, Teil 2\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/#listItem\",\"name\":\"2026\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_2\\\/#listItem\",\"position\":4,\"name\":\"Backstage-Bereich von Access erweitern, Teil 2\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/3\\\/2026\\\/#listItem\",\"name\":\"3\\\/2026\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/cropped-header_vbe-1.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_2\\\/#organizationLogo\",\"width\":664,\"height\":225},\"image\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_2\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_2\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Andr\\u00e9 Minhorst\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_2\\\/#webpage\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_2\\\/\",\"name\":\"Backstage-Bereich von Access erweitern, Teil 2 - Visual Basic Entwickler\",\"description\":\"Im ersten Teil dieser Artikelserie haben wir den Backstage-Bereich von Access mit eigenen Befehlen und einer Registerkarte ausgestattet, die Steuerelemente wie editBox, checkBox, dropDown, comboBox und radioGroup enth\\u00e4lt. In diesem zweiten Teil gehen wir einen Schritt weiter: Wir lernen die Layout-Elemente groupBox, layoutContainer und imageControl kennen und bauen mit taskFormGroup und taskGroup komplexere Aufgabenbereiche auf.\",\"inLanguage\":\"de-DE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_2\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"datePublished\":\"2026-06-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"inLanguage\":\"de-DE\",\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Backstage-Bereich von Access erweitern, Teil 2 - Visual Basic Entwickler","description":"Im ersten Teil dieser Artikelserie haben wir den Backstage-Bereich von Access mit eigenen Befehlen und einer Registerkarte ausgestattet, die Steuerelemente wie editBox, checkBox, dropDown, comboBox und radioGroup enth\u00e4lt. In diesem zweiten Teil gehen wir einen Schritt weiter: Wir lernen die Layout-Elemente groupBox, layoutContainer und imageControl kennen und bauen mit taskFormGroup und taskGroup komplexere Aufgabenbereiche auf.","canonical_url":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_2\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_2\/#blogposting","name":"Backstage-Bereich von Access erweitern, Teil 2 - Visual Basic Entwickler","headline":"Backstage-Bereich von Access erweitern, Teil 2","author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"},"image":{"@type":"ImageObject","url":"http:\/\/vg08.met.vgwort.de\/na\/6cfa85d09ccc467e926395181f67ca65","@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_2\/#articleImage"},"datePublished":"2026-06-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00","inLanguage":"de-DE","mainEntityOfPage":{"@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_2\/#webpage"},"isPartOf":{"@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_2\/#webpage"},"articleSection":"2026, 3\/2026, Outlook programmieren, Ribbon programmieren, Visual Basic Programmierung"},{"@type":"BreadcrumbList","@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_2\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","position":1,"name":"Home","item":"https:\/\/vbentwickler.de","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/#listItem","name":"2026"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/#listItem","position":2,"name":"2026","item":"https:\/\/vbentwickler.de\/category\/2026\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/3\/2026\/#listItem","name":"3\/2026"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/3\/2026\/#listItem","position":3,"name":"3\/2026","item":"https:\/\/vbentwickler.de\/category\/2026\/3\/2026\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_2\/#listItem","name":"Backstage-Bereich von Access erweitern, Teil 2"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/#listItem","name":"2026"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_2\/#listItem","position":4,"name":"Backstage-Bereich von Access erweitern, Teil 2","previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/3\/2026\/#listItem","name":"3\/2026"}}]},{"@type":"Organization","@id":"https:\/\/vbentwickler.de\/#organization","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","url":"https:\/\/vbentwickler.de\/","logo":{"@type":"ImageObject","url":"https:\/\/vbentwickler.de\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_2\/#organizationLogo","width":664,"height":225},"image":{"@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_2\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author","url":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_2\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","width":96,"height":96,"caption":"Andr\u00e9 Minhorst"}},{"@type":"WebPage","@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_2\/#webpage","url":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_2\/","name":"Backstage-Bereich von Access erweitern, Teil 2 - Visual Basic Entwickler","description":"Im ersten Teil dieser Artikelserie haben wir den Backstage-Bereich von Access mit eigenen Befehlen und einer Registerkarte ausgestattet, die Steuerelemente wie editBox, checkBox, dropDown, comboBox und radioGroup enth\u00e4lt. In diesem zweiten Teil gehen wir einen Schritt weiter: Wir lernen die Layout-Elemente groupBox, layoutContainer und imageControl kennen und bauen mit taskFormGroup und taskGroup komplexere Aufgabenbereiche auf.","inLanguage":"de-DE","isPartOf":{"@id":"https:\/\/vbentwickler.de\/#website"},"breadcrumb":{"@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_2\/#breadcrumblist"},"author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"creator":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"datePublished":"2026-06-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00"},{"@type":"WebSite","@id":"https:\/\/vbentwickler.de\/#website","url":"https:\/\/vbentwickler.de\/","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","inLanguage":"de-DE","publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"}}]},"og:locale":"de_DE","og:site_name":"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","og:type":"article","og:title":"Backstage-Bereich von Access erweitern, Teil 2 - Visual Basic Entwickler","og:description":"Im ersten Teil dieser Artikelserie haben wir den Backstage-Bereich von Access mit eigenen Befehlen und einer Registerkarte ausgestattet, die Steuerelemente wie editBox, checkBox, dropDown, comboBox und radioGroup enth\u00e4lt. In diesem zweiten Teil gehen wir einen Schritt weiter: Wir lernen die Layout-Elemente groupBox, layoutContainer und imageControl kennen und bauen mit taskFormGroup und taskGroup komplexere Aufgabenbereiche auf.","og:url":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_2\/","og:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","og:image:secure_url":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","article:published_time":"2026-07-28T15:08:59+00:00","article:modified_time":"-001-11-30T00:00:00+00:00","twitter:card":"summary_large_image","twitter:title":"Backstage-Bereich von Access erweitern, Teil 2 - Visual Basic Entwickler","twitter:description":"Im ersten Teil dieser Artikelserie haben wir den Backstage-Bereich von Access mit eigenen Befehlen und einer Registerkarte ausgestattet, die Steuerelemente wie editBox, checkBox, dropDown, comboBox und radioGroup enth\u00e4lt. In diesem zweiten Teil gehen wir einen Schritt weiter: Wir lernen die Layout-Elemente groupBox, layoutContainer und imageControl kennen und bauen mit taskFormGroup und taskGroup komplexere Aufgabenbereiche auf.","twitter:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png"},"aioseo_meta_data":{"post_id":"55000500","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2026-07-28 14:01:47","updated":"2026-07-28 14:01:47","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2026\/\" title=\"2026\">2026<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2026\/3\/2026\/\" title=\"3\/2026\">3\/2026<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tBackstage-Bereich von Access erweitern, Teil 2\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/vbentwickler.de"},{"label":"2026","link":"https:\/\/vbentwickler.de\/category\/2026\/"},{"label":"3\/2026","link":"https:\/\/vbentwickler.de\/category\/2026\/3\/2026\/"},{"label":"Backstage-Bereich von Access erweitern, Teil 2","link":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_2\/"}],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000500","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000500"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000500\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000500"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000500"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000500"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000500"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}