{"id":55001319,"date":"2021-10-01T00:00:00","date_gmt":"2021-09-29T22:10:54","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1319"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Optionsgruppe_leeren_mit_Klasse","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Optionsgruppe_leeren_mit_Klasse\/","title":{"rendered":"Optionsgruppe leeren mit Klasse"},"content":{"rendered":"<p><b>Optionsgruppen sind praktische Steuerelemente f&uuml;r die Auswahl einiger weniger, vorab fest definierter Optionen. Leider bietet dieses Steuerelement nach einmaliger Auswahl nicht mehr die M&ouml;glichkeit, dieses wieder zu leeren. Im vorliegenden Beitrag schauen wir uns an, wie das grunds&auml;tzlich zu erledigen ist. Au&szlig;erdem erstellen wir eine Klasse, mit der Sie den dazu ben&ouml;tigten Code f&uuml;r die Nutzung in mehreren Optionsgruppen wiederverwenden k&ouml;nnen, statt ihn jedes Mal zu reproduzieren.<\/b><\/p>\n<h2>Vorbereitung<\/h2>\n<p>F&uuml;r die Beispiele in diesem Beitrag legen wir ein Formular mit einer Optionsgruppe namens <b>ogr-Optionen <\/b>an. Dieser f&uuml;gen wir drei Optionen hinzu, deren Wert f&uuml;r die Eigenschaft <b>Optionswert <\/b>wir auf <b>1<\/b>, <b>2 <\/b>und <b>3 <\/b>festlegen und die wir <b>opt1<\/b>, <b>opt2 <\/b>und <b>opt3 <\/b>benennen. Der Entwurf dieses Formulars sieht wie in Bild 1 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_05\/pic_1319_001.png\" alt=\"Entwurf des Formulars mit der Optionsgruppe\" width=\"499,5589\" height=\"231,1684\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Entwurf des Formulars mit der Optionsgruppe<\/span><\/b><\/p>\n<p>Dieses Formular kopieren wir direkt einmal, und zwar unter dem Namen <b>frmOptionenMitKlasse<\/b>. Wir schauen uns also zuerst an, wie wir das Leeren der Optionsgruppe direkt im Klassenmodul des Formulars erledigen.<\/p>\n<p>Danach programmieren wir Klassen, mit denen wir das Verhalten abbilden und wiederverwendbar machen, und wenden diese in der Kopie des Formulars an.<\/p>\n<h2>Gew&uuml;nschtes Verhalten<\/h2>\n<p>Wir wollen erreichen, dass der Benutzer sowohl mit der Maus als auch mit der Tastatur eine einmal get&auml;tigte Auswahl in der Optionsgruppe wieder r&uuml;ckg&auml;ngig machen kann.<\/p>\n<p>Dazu untersuchen wir zwei Ereignisse: das Loslassen der linken Maustaste sowie das Bet&auml;tigen der Leertaste. Hier pr&uuml;fen wir jeweils, ob die aktuelle Option gerade aktiviert ist, und nur in diesem Fall soll die Optionsgruppe geleert werden.<\/p>\n<h2>Ereignisse zum Abbilden des Verhaltens<\/h2>\n<p>Dazu nutzen wir zwei Ereignisse der jeweiligen Optionsfelder, n&auml;mlich <b>Bei Maustaste auf <\/b>und <b>Bei Taste auf<\/b>. Diese legen wir f&uuml;r alle vorhandenen Optionsfelder an. F&uuml;r das erste Optionsfeld sieht das im ersten Schritt dann wie folgt aus:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>opt1_MouseUp(Button<span style=\"color:blue;\"> As Integer<\/span>,  Shift<span style=\"color:blue;\"> As Integer<\/span>, X<span style=\"color:blue;\"> As Single<\/span>, Y<span style=\"color:blue;\"> As Single<\/span>)\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>opt1_KeyUp(KeyCode<span style=\"color:blue;\"> As Integer<\/span>,  Shift<span style=\"color:blue;\"> As Integer<\/span>)\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Hier brauchen wir nun Action. F&uuml;r das Loslassen des Mauszeigers sieht das wie folgt aus:<\/p>\n<ul>\n<li>Pr&uuml;fen, ob die linke Maustaste gedr&uuml;ckt wurde<\/li>\n<li>Pr&uuml;fen, ob die Maus vor dem Loslassen die aktuell selektierte Option angeklickt hat<\/li>\n<li>Dann die Optionsgruppe leeren<\/li>\n<\/ul>\n<p>F&uuml;r das Ereignis <b>Bei Taste auf<\/b> stehen folgende Aufgaben an:<\/p>\n<ul>\n<li>Pr&uuml;fen, ob die Leertaste gedr&uuml;ckt wurde<\/li>\n<li>Pr&uuml;fen, ob beim Bet&auml;tigen der Leertaste der Fokus auf der aktuell selektierten Option liegt<\/li>\n<li>Dann die Optionsgruppe leeren<\/li>\n<\/ul>\n<h2>Individueller Code f&uuml;r diese Optionsgruppe<\/h2>\n<p>Die L&ouml;sung f&uuml;r die eingangs beschriebene Optionsgruppe finden Sie in Listing 1. Wir k&uuml;mmern uns zun&auml;chst um die Maus-ereignisse. Dazu schauen wir uns den Code f&uuml;r das Ereignis <b>opt1_MouseUp <\/b>an. Die Prozedur vergleicht zun&auml;chst den Wert des Parameters <b>Button <\/b>mit dem Wert der Konstanten <b>acLeftButton <\/b>und pr&uuml;ft damit, ob der Benutzer &uuml;berhaupt die linke Maustaste gedr&uuml;ckt hat.<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>opt1_MouseUp(Button<span style=\"color:blue;\"> As Integer<\/span>, Shift<span style=\"color:blue;\"> As Integer<\/span>, X<span style=\"color:blue;\"> As Single<\/span>, Y<span style=\"color:blue;\"> As Single<\/span>)\r\n     <span style=\"color:blue;\">If <\/span>Button = acLeftButton<span style=\"color:blue;\"> Then<\/span>\r\n         UpdateOptiongroup Me!ogrOptionen, Me!opt1\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>opt2_MouseUp(Button<span style=\"color:blue;\"> As Integer<\/span>, Shift<span style=\"color:blue;\"> As Integer<\/span>, X<span style=\"color:blue;\"> As Single<\/span>, Y<span style=\"color:blue;\"> As Single<\/span>)\r\n     <span style=\"color:blue;\">If <\/span>Button = acLeftButton<span style=\"color:blue;\"> Then<\/span>\r\n         UpdateOptiongroup Me!ogrOptionen, Me!opt2\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>opt3_MouseUp(Button<span style=\"color:blue;\"> As Integer<\/span>, Shift<span style=\"color:blue;\"> As Integer<\/span>, X<span style=\"color:blue;\"> As Single<\/span>, Y<span style=\"color:blue;\"> As Single<\/span>)\r\n     <span style=\"color:blue;\">If <\/span>Button = acLeftButton<span style=\"color:blue;\"> Then<\/span>\r\n         UpdateOptiongroup Me!ogrOptionen, Me!opt3\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>opt1_KeyUp(KeyCode<span style=\"color:blue;\"> As Integer<\/span>, Shift<span style=\"color:blue;\"> As Integer<\/span>)\r\n      Select Case KeyCode\r\n          <span style=\"color:blue;\">Case <\/span>vbKeySpace\r\n              UpdateOptiongroup Me!ogrOptionen, Me!opt1\r\n      <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>opt2_KeyUp(KeyCode<span style=\"color:blue;\"> As Integer<\/span>, Shift<span style=\"color:blue;\"> As Integer<\/span>)\r\n      Select Case KeyCode\r\n          <span style=\"color:blue;\">Case <\/span>vbKeySpace\r\n              UpdateOptiongroup Me!ogrOptionen, Me!opt2\r\n      <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>opt3_KeyUp(KeyCode<span style=\"color:blue;\"> As Integer<\/span>, Shift<span style=\"color:blue;\"> As Integer<\/span>)\r\n      Select Case KeyCode\r\n          <span style=\"color:blue;\">Case <\/span>vbKeySpace\r\n              UpdateOptiongroup Me!ogrOptionen, Me!opt2\r\n      <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>UpdateOptiongroup(ogr<span style=\"color:blue;\"> As <\/span>OptionGroup, opt<span style=\"color:blue;\"> As <\/span>OptionButton)\r\n      <span style=\"color:blue;\">If <\/span>ogr = opt.OptionValue<span style=\"color:blue;\"> Then<\/span>\r\n          ogr = Null\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 1: Prozeduren, um die aktuelle Option wieder abzuw&auml;hlen<\/span><\/b><\/p>\n<p>Ist das der Fall, ruft die Ereignisprozedur eine weitere Prozedur namens <b>UpdateOptiongroup <\/b>auf und &uuml;bergibt dieser als Parameter einen Verweis auf die Optionsgruppe sowie auf das angeklickte Optionsfeld. Diese Prozedur pr&uuml;ft, ob der Wert der Optionsgruppe (aus dem Parameter <b>ogr<\/b>) mit dem Wert des Optionsfeldes (aus dem Parameter <b>opt<\/b>) &uuml;bereinstimmt. In diesem Fall stellt sie den Wert der Optionsgruppe aus dem Parameter <b>ogr <\/b>auf <b>Null <\/b>ein.<\/p>\n<p>Auf die gleiche Weise programmieren wir die Prozeduren f&uuml;r das Ereignis <b>Bei Maustaste auf <\/b>der anderen Optionsfelder. Die Prozeduren <b>opt1_KeyUp<\/b>, <b>opt2_KeyUp <\/b>und <b>opt3_KeyUp <\/b>werden beim Bet&auml;tigen von Tasten ausgel&ouml;st. Hier pr&uuml;fen wir, welche Taste der Benutzer gedr&uuml;ckt hat, denn das Ereignis wird beim Bet&auml;tigen jeder Taste ausgel&ouml;st. Also vergleichen wir den Wert des Parameters <b>KeyCode <\/b>mit der Konstanten f&uuml;r die Leertaste, <b>vbKeySpace<\/b>. Sind die beiden gleich, rufen wir wieder die bereits beschriebene Prozedur <b>UpdateOptiongroup <\/b>auf und &uuml;bergeben die entsprechenden Parameter.<\/p>\n<h2>Optionsgruppe leeren wiederverwendbar machen<\/h2>\n<p><!--30percent--><\/p>\n<p>Nun haben Sie bereits gesehen, dass es relativ viel Aufwand ist, den Code f&uuml;r eine Optionsgruppe zu schreiben. Wollen Sie den Code f&uuml;r eine weitere Optionsgruppe nutzen, reicht einfaches Kopieren nicht aus, denn Sie m&uuml;ssen  diesen auch noch an die jeweiligen Steuerelementbezeichnungen und Optionswerte anpassen.<\/p>\n<p>Deshalb wollen wir zwei Klassen programmieren, welche dies automatisch erledigen &#8211; und die Sie f&uuml;r jede betroffene Optionsgruppe einfach nur noch zu deklarieren, initialisieren und zuzuweisen brauchen.<\/p>\n<p>Wir brauchen zwei Klassen, weil wir erstens die Optionsgruppen damit erfassen wollen und dort in einer Auflistung in einer zweiten Klasse die Optionsfelder. In dieser zweiten Klasse definieren wir die Ereignisse, die durch <b>Bei Maustaste auf <\/b>und <b>Bei Taste auf <\/b>ausgel&ouml;st werden.<\/p>\n<h2>Klasse zum Kapseln der Optionsfelder<\/h2>\n<p>Die Klasse, mit der wir jeweils ein Optionsfeld erfassen, hei&szlig;t <b>clsOptionbutton<\/b>. Diese Klasse finden Sie in der &Uuml;bersicht in Listing 2.<\/p>\n<pre><span style=\"color:blue;\">Private <\/span>WithEvents m_OptionButton<span style=\"color:blue;\"> As <\/span>OptionButton\r\n<span style=\"color:blue;\">Private <\/span>m_OptionGroup<span style=\"color:blue;\"> As <\/span>OptionGroup\r\n<span style=\"color:blue;\">Public Property <span style=\"color:blue;\">Set<\/span> <\/span>OptionButton(opt<span style=\"color:blue;\"> As <\/span>OptionButton)\r\n     <span style=\"color:blue;\">Set<\/span> m_OptionButton = opt\r\n     <span style=\"color:blue;\">With<\/span> m_OptionButton\r\n         .OnMouseUp = \"[Event Procedure]\"\r\n         .OnKeyUp = \"[Event Procedure]\"\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Property<\/span>\r\n<span style=\"color:blue;\">Public Property <span style=\"color:blue;\">Set<\/span> <\/span>OptionGroup(grp<span style=\"color:blue;\"> As <\/span>OptionGroup)\r\n     <span style=\"color:blue;\">Set<\/span> m_OptionGroup = grp\r\n<span style=\"color:blue;\">End Property<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>m_OptionButton_KeyUp(KeyCode<span style=\"color:blue;\"> As Integer<\/span>, Shift<span style=\"color:blue;\"> As Integer<\/span>)\r\n     Select Case KeyCode\r\n         <span style=\"color:blue;\">Case <\/span>vbKeySpace\r\n             UpdateOptiongroup m_OptionGroup, m_OptionButton\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>m_OptionButton_MouseUp(Button<span style=\"color:blue;\"> As Integer<\/span>, Shift<span style=\"color:blue;\"> As Integer<\/span>, X<span style=\"color:blue;\"> As Single<\/span>, _\r\n         Y<span style=\"color:blue;\"> As Single<\/span>)\r\n     <span style=\"color:blue;\">If <\/span>Button = acLeftButton<span style=\"color:blue;\"> Then<\/span>\r\n         UpdateOptiongroup m_OptionGroup, m_OptionButton\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>UpdateOptiongroup(ogr<span style=\"color:blue;\"> As <\/span>OptionGroup, opt<span style=\"color:blue;\"> As <\/span>OptionButton)\r\n     <span style=\"color:blue;\">If <\/span>ogr = opt.OptionValue<span style=\"color:blue;\"> Then<\/span>\r\n         ogr = Null\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 2: Code der Klasse clsOptionButton<\/span><\/b><\/p>\n<p>Sie deklariert eine Variable namens <b>m_OptionButton<\/b> f&uuml;r das <b>OptionButton<\/b>-Element, das sie aufnehmen soll, und legt f&uuml;r dieses das Schl&uuml;sselwort <b>WithEvents <\/b>fest. Dadurch k&ouml;nnen wir in dieser Klasse Ereignisprozeduren f&uuml;r das <b>OptionButton<\/b>-Element definieren. Au&szlig;erdem definiert sie eine weitere Variable namens <b>m_OptionGroup<\/b>. Diese soll einen Verweis auf das <b>OptionGroup<\/b>-Steuerelement erhalten, den wir sp&auml;ter in den Ereignisprozeduren ben&ouml;tigen.<\/p>\n<p>Die erste <b>Property Set<\/b>-Methode bietet die M&ouml;glichkeit, der Klasse einen Verweis auf das zu verwendende <b>OptionButton<\/b>-Steuerelement zu &uuml;bergeben, und zwar mit dem Parameter <b>opt<\/b>. Den Inhalt dieses Parameters weist die Prozedur der Variablen <b>m_OptionButton <\/b>zu. Anschlie&szlig;end legt sie f&uuml;r die beiden Eigenschaften <b>OnMouseUp <\/b>und <b>OnKeyUp <\/b>den Wert <b>[Event Procedure] <\/b>fest.<\/p>\n<p>Das ist der Schritt neben dem Schl&uuml;sselwort <b>WithEvents<\/b>, um nicht nur das Anlegen, sondern auch das Ausl&ouml;sen von Ereignisprozeduren f&uuml;r dieses Steuerelement in der aktuellen Klasse zu erm&ouml;glichen.<\/p>\n<p>Die zweite <b>Property Set<\/b>-Prozedur erlaubt das Zuweisen eines Verweises auf das betroffene <b>OptionGroup<\/b>-Steuerelement zu der Variablen <b>m_OptionGroup<\/b>.<\/p>\n<p>Nun fehlen noch die Ereignisprozeduren. Diese legen Sie an, indem Sie im Kopf des Klassenmoduls im linken Kombinationsfeld den Eintrag <b>m_OptionButton <\/b>ausw&auml;hlen und im rechten einmal <b>OnMouseUp <\/b>und einmal <b>OnKeyUp<\/b>. Beim ersten Ausw&auml;hlen von <b>m_OptionButton <\/b>wird automatisch die Ereignisprozedur f&uuml;r das <b>Click<\/b>-Ereignis angelegt &#8211; diese k&ouml;nnen Sie gleich wieder entfernen.<\/p>\n<p>Die Prozedur <b>m_OptionButton_KeyUp<\/b> f&uuml;llen wir prinzipiell mit den gleichen Anweisungen wie die aus den obigen Beispielen, wo wir die Programmierung f&uuml;r jedes Optionsfeld einzeln vorgenommen haben.<\/p>\n<p>Der erste Unterschied ist die Bezeichnung (<b>m_OptionButton_KeyUp <\/b>statt <b>opt1_KeyUp<\/b>). Der zweite und wichtigste Unterschied sind die Parameter, mit denen die Prozedur <b>UpdateOptiongroup <\/b>aufgerufen wird. Hier verwenden wir nun die beiden privat deklarierten und zuvor gef&uuml;llten Variablen <b>m_OptionGroup <\/b>und <b>m_OptionButton<\/b>.<\/p>\n<p>Die Prozedur <b>UpdateOptiongroup <\/b>wiederum haben wir wie im einf&uuml;hrenden Beispiel beibehalten.<\/p>\n<p>Die Prozedur <b>m_OptionButton_MouseUp <\/b>erwartet die gleichen Anpassungen gegen&uuml;ber dem Eingangsbeispiel, also ein neuer Prozedurname sowie die Verwendung von <b>m_OptionGroup <\/b>und <b>m_OptionButton <\/b>als Parameter beim Aufruf von <b>Update-Optiongroup<\/b>.<\/p>\n<p>Damit ist der erste Teil abgeschlossen und wir schauen uns nun an, wie wir Instanzen auf Basis der Klasse <b>clsOptionButton <\/b>erstellen.<\/p>\n<h2>Klasse zum Kapseln der Optionsgruppe<\/h2>\n<p>Den Code der zweiten Klasse finden Sie in Listing 3. Die Klasse deklariert ebenfalls zwei private, modulweit g&uuml;ltige Variablen. Die erste nimmt einen Verweis auf das <b>OptionGroup<\/b>-Steuerelement auf, f&uuml;r das wir die Funktion zum Leeren definieren wollen. Die zweite ist eine <b>Collection<\/b>-Variable namens <b>colControlButtons <\/b>und sie soll die Instanzen der Klasse <b>clsOptionButton <\/b>aufnehmen, die wir f&uuml;r die betroffene Optionsgruppe ben&ouml;tigen.<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>m_OptionGroup<span style=\"color:blue;\"> As <\/span>OptionGroup\r\n<span style=\"color:blue;\">Dim <\/span>colOptionButtons<span style=\"color:blue;\"> As <\/span>Collection\r\n<span style=\"color:blue;\">Public Property <span style=\"color:blue;\">Set<\/span> <\/span>OptionGroup(ogr<span style=\"color:blue;\"> As <\/span>OptionGroup)\r\n     <span style=\"color:blue;\">Dim <\/span>ctl<span style=\"color:blue;\"> As <\/span>Control\r\n     <span style=\"color:blue;\">Dim <\/span>opt<span style=\"color:blue;\"> As <\/span>clsOptionButton\r\n     <span style=\"color:blue;\">Set<\/span> m_OptionGroup = ogr\r\n     <span style=\"color:blue;\">Set<\/span> colOptionButtons = <span style=\"color:blue;\">New<\/span> Collection\r\n     For Each ctl In ogr.Controls\r\n         Select Case ctl.ControlType\r\n             <span style=\"color:blue;\">Case <\/span>acOptionButton\r\n                 <span style=\"color:blue;\">Set<\/span> opt = <span style=\"color:blue;\">New<\/span> clsOptionButton\r\n                 <span style=\"color:blue;\">With<\/span> opt\r\n                     <span style=\"color:blue;\">Set<\/span> .OptionButton = ctl\r\n                     <span style=\"color:blue;\">Set<\/span> .OptionGroup = ogr\r\n                     colOptionButtons.Add opt\r\n                 End <span style=\"color:blue;\">With<\/span>\r\n         <span style=\"color:blue;\">End Select<\/span>\r\n     <span style=\"color:blue;\">Next<\/span> ctl\r\n<span style=\"color:blue;\">End Property<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 3: Code der Klasse clsOptionGroup<\/span><\/b><\/p>\n<p>Die Variable <b>m_OptionGroup <\/b>f&uuml;llen wir mit der &ouml;ffentlichen <b>Property Set<\/b>-Methode <b>Option-Group<\/b>. Diese nimmt mit dem Parameter <b>ogr <\/b>den Verweis auf die Optionsgruppe entgegen und speichert diese in der Variablen <b>m_Option-Group<\/b>.<\/p>\n<p>Dann initialisiert sie die Collection <b>colOptionButtons <\/b>mit dem <b>New<\/b>-Schl&uuml;sselwort. Anschlie&szlig;end durchl&auml;uft sie in einer <b>For Each<\/b>-Schleife alle Steuerelemente des <b>OptionGroup<\/b>-Steuerelements und referenziert das jeweilige Steuerelement mit der Variablen <b>ctl<\/b>.<\/p>\n<p>In der Schleife pr&uuml;ft eine <b>Select Case<\/b>-Bedingung, ob es sich bei dem aktuellen mit <b>ctl <\/b>referenzierten Steuerelement um ein <b>OptionButton<\/b>-Element handelt.<\/p>\n<p>Falls ja, legt die Prozedur eine neue Instanz der Klasse <b>clsOptionButton <\/b>an und weist den beiden Eigenschaften <b>OptionButton <\/b>und <b>OptionGroup <\/b>Verweise auf das aktuelle <b>OptionButton<\/b>-Element aus <b>ctl <\/b>und das <b>OptionGroup<\/b>-Element aus <b>ogr <\/b>zu.<\/p>\n<p>Danach f&uuml;gt sie die Variable <b>opt <\/b>mit der neuen Instanz der Klasse <b>clsOptionButton <\/b>der <b>Collection<\/b>-Auflistung <b>colOptionButtons <\/b>zu.<\/p>\n<p>Damit ist der Teil der Klassenprogrammierung beendet.<\/p>\n<h2>Klassen zum Leeren von Optionsgruppen einsetzen<\/h2>\n<p>Weiter oben haben wir bereits ein weiteres Beispielformular namens <b>frmOptiongruppeMitKlasse <\/b>angelegt. F&uuml;r dieses definieren wir nun die Ereignisprozedur <b>Form_Load<\/b> und hinterlegen f&uuml;r dieses die folgenden Anweisungen &#8211; nebst einer Variablen f&uuml;r die Klasse <b>cls-Option-Group<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>objOptionGroup<span style=\"color:blue;\"> As <\/span>clsOptionGroup\r\n<span style=\"color:blue;\">Private Sub <\/span>Form_Load()\r\n     <span style=\"color:blue;\">Set<\/span> objOptionGroup = <span style=\"color:blue;\">New<\/span> clsOptionGroup\r\n     <span style=\"color:blue;\">Set<\/span> objOptionGroup.OptionGroup = Me!ogrOptionen\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Beim Laden des Formulars geschieht nun Folgendes:<\/p>\n<p>Das Ereignis <b>Form_Load <\/b>wird ausgel&ouml;st. Dabei erzeugt dieses eine neue Instanz der Klasse <b>clsOptionGroup<\/b>. Anschlie&szlig;end weist es der Eigenschaft <b>OptionGroup <\/b>der neuen Instanz einen Verweis auf die Optionsgruppe zu, die wir um die Funktion zum Leeren der Optionen erg&auml;nzen wollen.<\/p>\n<p>In der Instanz der Klasse <b>clsOptionGroup <\/b>wurde durch das &Uuml;bergeben des Verweises auf die Optionsgruppe die <b>Property Set<\/b>-Methode <b>OptionGroup <\/b>ausgel&ouml;st. Diese legt nun f&uuml;r alle Optionsfelder der Optionsgruppe neue Instanzen der Klasse <b>clsOptionButton <\/b>an und weist diesen Verweise auf die Optionsgruppe und das aktuelle Optionsfeld zu. Dann speichert sie die neue Instanz in der Collection.<\/p>\n<p>In den Instanzen der Klasse <b>clsOptionButton <\/b>werden &uuml;ber die <b>Property Set<\/b>-Methoden <b>OptionGroup <\/b>und <b>OptionButton <\/b>die Verweise auf die Optionsgruppe und das jeweilige Optionsfeld gespeichert und im Falle der Optionsfelder auch direkt die Ereigniseigenschaften f&uuml;r <b>Bei Maustaste auf <\/b>und <b>Bei Taste auf <\/b>gef&uuml;llt.<\/p>\n<h2>Optionsgruppe leeren mit den beiden Klassen<\/h2>\n<p>Wenn der Benutzer nun mit der Maus eine der Optionen anklickt, die zuvor noch nicht markiert war, wird diese wie  gewohnt markiert. Im Hintergrund l&auml;uft jedoch bereits das Ereignis <b>m_OptionButton_MouseUp <\/b>ab &#8211; und zwar aus der Instanz der Klasse <b>clsOptionButton <\/b>f&uuml;r das angeklickte Optionsfeld in der <b>Collection<\/b>-Auflistung <b>colOptionButtons<\/b>.<\/p>\n<p>Dies allerdings unbemerkt, da der Benutzer eine neue Option selektiert und somit nicht eine bereits markierte Option erneut angeklickt wurde.<\/p>\n<p>Klickt der Benutzer nochmals auf die bereits selektierte Option, l&ouml;st dies wiederum die Prozedur <b>m_OptionButton_MouseUp <\/b>aus. Diesmal findet die Prozedur <b>UpdateOptiongroup <\/b>jedoch heraus, dass das angeklickte Optionsfeld mit dem bereits markierten Optionsfeld &uuml;bereinstimmt und stellt den Wert der <b>Optionsgruppe <\/b>auf <b>Null <\/b>ein.<\/p>\n<p>Auf die gleiche Weise funktionieren die Methoden <b>m_OptionButton_KeyUp <\/b>der einzelnen Instanzen der Klasse <b>clsOptionButton<\/b>.<\/p>\n<h2>Verwenden der Klassen f&uuml;r eine weitere Optionsgruppe im gleichen Formular<\/h2>\n<p>Wenn Sie mehrere Optionsgruppen in einem Formular haben, die Sie mit der hier vorgestellten Funktion ausstatten wollen, ben&ouml;tigen Sie nur drei zus&auml;tzliche Zeilen.<\/p>\n<p>Also haben wir dem Formular noch eine zweite Optionsgruppe namens <b>ogrMehrOptionen <\/b>hinzugef&uuml;gt (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_05\/pic_1319_002.png\" alt=\"Entwurf des Formulars mit zwei Optionsgruppen\" width=\"424,5589\" height=\"185,6404\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Entwurf des Formulars mit zwei Optionsgruppen<\/span><\/b><\/p>\n<p>Der Code im Klassenmodul des Formulars ben&ouml;tigt eine weitere Variable f&uuml;r die zweite Instanz der Klasse <b>clsOptionGroup<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>objOptionGroup<span style=\"color:blue;\"> As <\/span>clsOptionGroup\r\n<span style=\"color:blue;\">Dim <\/span>objOptionGroup2<span style=\"color:blue;\"> As <\/span>clsOptionGroup<\/pre>\n<p>Au&szlig;erdem f&uuml;gen wir die bereits bekannten Anweisungen zum Erstellen eines Objekts auf Basis der Klasse und zum Zuweisen der Optionsgruppe zur Ereignisprozedur <b>Form_Load <\/b>hinzu:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Form_Load()\r\n     <span style=\"color:blue;\">Set<\/span> objOptionGroup = <span style=\"color:blue;\">New<\/span> clsOptionGroup\r\n     <span style=\"color:blue;\">Set<\/span> objOptionGroup.OptionGroup = Me!ogrOptionen\r\n     <span style=\"color:blue;\">Set<\/span> objOptionGroup2 = <span style=\"color:blue;\">New<\/span> clsOptionGroup\r\n     <span style=\"color:blue;\">Set<\/span> objOptionGroup2.OptionGroup = Me!ogrMehrOptionen\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Es gibt F&auml;lle, in denen Sie keine Option f&uuml;r eine Optionsgruppe w&auml;hlen m&ouml;chten. Wenn Sie jedoch einmal eine Option ausgew&auml;hlt haben, k&ouml;nnen Sie diese nicht mehr entfernen. Den Code, um eine Option durch erneutes Anklicken wieder abzuw&auml;hlen, haben wir im ersten Teil des Beitrags beschrieben.<\/p>\n<p>Im zweiten Teil haben wir diesen Code so in zwei Klassen gepackt, dass Sie diese einfach nur noch zum Projekt hinzuf&uuml;gen und einige Zeilen Code zum jeweiligen Formular hinzuf&uuml;gen m&uuml;ssen, um diese Funktionen f&uuml;r ein oder mehrere Optionsgruppen verf&uuml;gbar zu machen.<\/p>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>OptionsgruppeLeerenMitKlasse.accdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/5CFC13AC-E14A-4D35-8547-F2715C13057D\/aiu_1319.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Optionsgruppen sind ein praktisches Steuerelement f&uuml;r die Auswahl einiger weniger, vorab fest definierter Optionen. Leider bietet dieses Steuerelement nach einmaliger Auswahl nicht mehr die M&ouml;glichkeit, dieses wieder zu leeren. Im vorliegenden Beitrag schauen wir uns an, wie das grunds&auml;tzlich zu erledigen ist. Au&szlig;erdem erstellen wir eine Klasse, mit der Sie den dazu ben&ouml;tigten Code f&uuml;r die Nutzung in mehreren Optionsgruppen wiederverwenden k&ouml;nnen, statt ihn jedes Mal zu reproduzieren.<\/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":[662021,66052021,44000023],"tags":[],"class_list":["post-55001319","post","type-post","status-publish","format-standard","hentry","category-662021","category-66052021","category-Mit_Formularen_arbeiten"],"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>Optionsgruppe leeren mit Klasse - 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\/Optionsgruppe_leeren_mit_Klasse\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Optionsgruppe leeren mit Klasse\" \/>\n<meta property=\"og:description\" content=\"Optionsgruppen sind ein praktisches Steuerelement f&uuml;r die Auswahl einiger weniger, vorab fest definierter Optionen. Leider bietet dieses Steuerelement nach einmaliger Auswahl nicht mehr die M&ouml;glichkeit, dieses wieder zu leeren. Im vorliegenden Beitrag schauen wir uns an, wie das grunds&auml;tzlich zu erledigen ist. Au&szlig;erdem erstellen wir eine Klasse, mit der Sie den dazu ben&ouml;tigten Code f&uuml;r die Nutzung in mehreren Optionsgruppen wiederverwenden k&ouml;nnen, statt ihn jedes Mal zu reproduzieren.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Optionsgruppe_leeren_mit_Klasse\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-29T22:10:54+00:00\" \/>\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\\\/Optionsgruppe_leeren_mit_Klasse\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Optionsgruppe_leeren_mit_Klasse\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Optionsgruppe leeren mit Klasse\",\"datePublished\":\"2021-09-29T22:10:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Optionsgruppe_leeren_mit_Klasse\\\/\"},\"wordCount\":2041,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"articleSection\":[\"2021\",\"5\\\/2021\",\"Mit Formularen arbeiten\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Optionsgruppe_leeren_mit_Klasse\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Optionsgruppe_leeren_mit_Klasse\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Optionsgruppe_leeren_mit_Klasse\\\/\",\"name\":\"Optionsgruppe leeren mit Klasse - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"datePublished\":\"2021-09-29T22:10:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Optionsgruppe_leeren_mit_Klasse\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Optionsgruppe_leeren_mit_Klasse\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Optionsgruppe_leeren_mit_Klasse\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Optionsgruppe leeren mit Klasse\"}]},{\"@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":"Optionsgruppe leeren mit Klasse - 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\/Optionsgruppe_leeren_mit_Klasse\/","og_locale":"de_DE","og_type":"article","og_title":"Optionsgruppe leeren mit Klasse","og_description":"Optionsgruppen sind ein praktisches Steuerelement f&uuml;r die Auswahl einiger weniger, vorab fest definierter Optionen. Leider bietet dieses Steuerelement nach einmaliger Auswahl nicht mehr die M&ouml;glichkeit, dieses wieder zu leeren. Im vorliegenden Beitrag schauen wir uns an, wie das grunds&auml;tzlich zu erledigen ist. Au&szlig;erdem erstellen wir eine Klasse, mit der Sie den dazu ben&ouml;tigten Code f&uuml;r die Nutzung in mehreren Optionsgruppen wiederverwenden k&ouml;nnen, statt ihn jedes Mal zu reproduzieren.","og_url":"https:\/\/access-im-unternehmen.de\/Optionsgruppe_leeren_mit_Klasse\/","og_site_name":"Access im Unternehmen","article_published_time":"2021-09-29T22:10:54+00:00","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\/Optionsgruppe_leeren_mit_Klasse\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Optionsgruppe_leeren_mit_Klasse\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Optionsgruppe leeren mit Klasse","datePublished":"2021-09-29T22:10:54+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Optionsgruppe_leeren_mit_Klasse\/"},"wordCount":2041,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"articleSection":["2021","5\/2021","Mit Formularen arbeiten"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Optionsgruppe_leeren_mit_Klasse\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Optionsgruppe_leeren_mit_Klasse\/","url":"https:\/\/access-im-unternehmen.de\/Optionsgruppe_leeren_mit_Klasse\/","name":"Optionsgruppe leeren mit Klasse - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"datePublished":"2021-09-29T22:10:54+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Optionsgruppe_leeren_mit_Klasse\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Optionsgruppe_leeren_mit_Klasse\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Optionsgruppe_leeren_mit_Klasse\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Optionsgruppe leeren mit Klasse"}]},{"@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\/55001319","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=55001319"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001319\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001319"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001319"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001319"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}