{"id":55000682,"date":"2009-10-01T00:00:00","date_gmt":"2020-05-22T22:17:28","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=682"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Modale_Dialoge_mal_anders","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Modale_Dialoge_mal_anders\/","title":{"rendered":"Modale Dialoge mal anders"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg04.met.vgwort.de\/na\/71ee060a65e14774894f792165d471bf\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Unter modalen Dialogen verstehen wir Formulare zur Eingabe von Daten, die so ge&ouml;ffnet werden, dass der Benutzer w&auml;hrend der Eingabe nichts anderes in Access erledigen kann als in diesem Formular zu arbeiten. Zum &Ouml;ffnen eines solchen Formulars verwendet man &uuml;blicherweise den Parameter WindowMode:=acDialog, was den praktischen Nebeneffekt hat, dass der aufrufende Code stehen bleibt. Wir zeigen, welche Vor- und Nachteile dies bringt und welche Alternative es gibt.<\/b><\/p>\n<p>Der &uuml;bliche Ablauf beim Einsatz modaler Dialoge, etwa zum Anlegen eines neuen Datensatzes, ist dieser:<\/p>\n<p>Sie &ouml;ffnen das Formular mit einer Anweisung wie folgt:<\/p>\n<pre>DoCmd.OpenForm \"Formularname\", WindowMode:=acDialog, DataMode:=acFormAdd, OpenArgs:=lngId<\/pre>\n<p>Dabei sorgt <b>WindowMode:=acDialog <\/b>f&uuml;r das &Ouml;ffnen als modaler Dialog. <b>DataMode:=acFormAdd <\/b>teilt dem Formular mit, dass es nur einen neuen, leeren Datensatz anzeigen soll, und mit <b>OpenArgs <\/b>&uuml;bergeben Sie optional eine Information wie etwa den Fremdschl&uuml;sselwert f&uuml;r die Verkn&uuml;pfung des neuen Datensatzes mit der &uuml;bergeordneten Tabelle.<\/p>\n<p>Das Popup-Formular &ouml;ffnet sich, der Benutzer kann nichts anderes tun, als die Daten einzugeben (alle anderen Access-Elemente sind in dieser Zeit tabu), und dann schlie&szlig;t der Benutzer das Formular auf eine von zwei Arten. Die erste offeriert in der Regel eine <b>OK<\/b>-Schaltfl&auml;che, die das Formular mit der folgenden Anweisung unsichtbar schaltet:<\/p>\n<pre>Me.Visible = False<\/pre>\n<p>Die zweite schlie&szlig;t das Formular gleich komplett:<\/p>\n<pre>DoCmd.Close acForm, Me.Name<\/pre>\n<p>Beide sorgen daf&uuml;r, dass das Formular verschwindet und dass der aufrufende Code weiterl&auml;uft, da das Formular den Fokus abgegeben hat. Wo aber ist der Unterschied Er liegt darin, dass der aufrufende Code noch auf das unsichtbare Formular zugreifen kann, um den Inhalt seiner Steuerelemente einzulesen &#8211; in den meisten F&auml;llen holt es sich dabei die ID des neu angelegten Datensatzes. Dazu muss die Routine pr&uuml;fen, ob das Formular noch ge&ouml;ffnet ist, was dann als sicheres Indiz daf&uuml;r gilt, dass es &uuml;ber die <b>OK<\/b>-Schaltfl&auml;che &#8222;geschlossen&#8220; wurde:<\/p>\n<pre>If IstFormularGeoeffnet(\"Formularname\") Then\r\n    &euro;&#154;Lese wichtige Felder aus\r\nEnd If<\/pre>\n<p>Welche Nachteile hat dies Im Wesentlichen die folgenden zwei:<\/p>\n<p>Die Daten&uuml;bergabe an das aufgerufene Formular ist je nach Anzahl der zu &uuml;bergebenden Informationen aufwendig, weil prinzipiell nur der <b>OpenArgs<\/b>-Parameter daf&uuml;r bereitsteht. Und dem kann man mehrere Parameter gleichzeitig auch nur dann unterjubeln, wenn man diese mit einem geeigneten Trennzeichen oder einem anderen speziellen Format auszeichnet und im aufgerufenen Formular entsprechend parst.<\/p>\n<p>Gleichzeitig m&uuml;ssen Sie eine Abh&auml;ngigkeit vom Popup-Formular zum aufrufenden Formular eingehen. Wenn der Benutzer das Popup-Formular mit der <b>OK<\/b>-Schaltfl&auml;che schlie&szlig;t, wird dieses ja nur unsichtbar geschaltet. Das aufrufende Formular muss es dann nach dem Auslesen der Daten noch schlie&szlig;en. Das ist nicht gut, denn: Wenn die aufrufende Instanz dies nicht wei&szlig;, bleibt das Popup-Formular ge&ouml;ffnet. Das wiederum f&uuml;hrt dazu, dass beim n&auml;chsten &Ouml;ffnen per <b>DoCmd.OpenForm <\/b>verwendete Parameter wirkungslos verpuffen.<\/p>\n<p><b>Alles neu<\/b><\/p>\n<p>Schauen wir uns also die alternative Variante an. Diese soll Folgendes erm&ouml;glichen:<\/p>\n<ul>\n<li class=\"aufz-hlung\">&Uuml;bergabe beliebig vieler Parameter<\/li>\n<li class=\"aufz-hlung\">Problemloses Auslesen der Steuerelemente des Popup-Formulars vor dem Schlie&szlig;en<\/li>\n<li class=\"aufz-hlung\">Tats&auml;chliches Schlie&szlig;en des Formulars nach Klick auf die <b>OK<\/b>-Schaltfl&auml;che<\/li>\n<\/ul>\n<p>Wie funktioniert das Der erste Schritt ist, dass wir das Formular nicht auf dem &uuml;blichen Wege als modalen Dialog &ouml;ffnen. Alternativ instanzieren wir dieses als Objekt auf Basis des Klassenmoduls des Formulars. Falls Sie so etwas noch nie gemacht haben: Keine Angst, die folgenden Abschnitte vermitteln keine Raketentechnik. Voraussetzung hierf&uuml;r ist, dass das Popup-Formular ein Klassenmodul besitzt. Das k&ouml;nnen wir aber voraussetzen, wenn dieses mindestens &uuml;ber Schaltfl&auml;chen mit angeh&auml;ngtem VBA-Code zum Schlie&szlig;en des Formulars verf&uuml;gt.<\/p>\n<p><b>Beispielsweise &#8230;<\/b><\/p>\n<p>F&uuml;r diesen Beitrag halten die Tabellen der S&uuml;dsturm-Datenbank her (eine angepasste Variante der Nordwind-Datenbank), und hier im Speziellen <b>tblKategorien <\/b>und <b>tblArtikel<\/b>. Das Formular <b>frmKategorienArtikel <\/b>aus Bild 1 verwaltet die Kategorien und die jeweils darin enthaltenen Daten. Eine Schaltfl&auml;che namens <b>cmdNeuerArtikel <\/b>soll das Popup-Formular <b>frmNeuerArtikel <\/b>&ouml;ffnen (siehe Bild 2).<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2009_05\/ModaleDialogMalAnders-web-images\/pic001_opt.jpeg\" alt=\"pic001.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1: Dieses Formular ruft ein Popup-Formular auf alternative Weise auf.<\/span><\/b><\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2009_05\/ModaleDialogMalAnders-web-images\/pic002_opt.jpeg\" alt=\"pic002.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2: Popup-Formular zum Anlegen neuer Artikel<\/span><\/b><\/p>\n<p>Damit wir einen praktischen Anwendungsfall f&uuml;r das &Uuml;bergeben von Parametern und das Auslesen von Steuerelementen haben, soll das Popup-Formular das Feld <b>Kategorie <\/b>mit einer Voreinstellung belegen. Diese entspricht der Kategorie, die im Formular <b>frmKategorienArtikel <\/b>zum Zeitpunkt des Klicks auf <b>cmdNeuerArtikel <\/b>eingestellt ist.<\/p>\n<p>Au&szlig;erdem soll das Formular <b>frmKategorienArtikel <\/b>vor dem Schlie&szlig;en des Popup-Formulars <b>frmNeuerArtikel <\/b>die ID des neuen Artikels einlesen und den Datensatzzeiger des Unterformulars <b>sfmKategorienArtikel <\/b>darauf einstellen.<\/p>\n<p>F&uuml;r den n&auml;chsten Schritt muss das Popup-Formular ein Klassenmodul enthalten. Dazu legen wir einfach schon einmal die folgenden beiden Ereignisprozeduren f&uuml;r die Schaltfl&auml;chen <b>cmdOK <\/b>und <b>cmdAbbrechen <\/b>an. Beide schlie&szlig;en das Formular, die Schaltfl&auml;che <b>cmdAbbrechen <\/b>macht zuvor noch die &auml;nderungen r&uuml;ckg&auml;ngig:<\/p>\n<pre>Private Sub cmdOK_Click()\r\n    DoCmd.Close acForm, Me.Name\r\n    End Sub\r\nPrivate Sub cmdAbbrechen_Click()\r\n    Me.Undo\r\n    DoCmd.Close acForm, Me.Name\r\n    End Sub<\/pre>\n<p>Beim Aufruf des Popup-Formulars sind nun ein paar Schritte mehr erforderlich als beim puren <b>DoCmd.OpenForm<\/b>. Der erste ist, dass Sie eine Objektvariable f&uuml;r das Klassenmodul des Popup-Formulars im Kopf des Moduls des aufrufenden Formulars anlegen:<\/p>\n<pre>Dim objFrmNeuerArtikel As Form_frmNeuerArtikel<\/pre>\n<p>Beim Klicken auf die Schaltfl&auml;che <b>cmdNeuerArtikel <\/b>wird dann diese Routine ausgel&ouml;st:<\/p>\n<pre>Private Sub cmdNeuerArtikel_Click()\r\n    Set objFrmNeuerArtikel =\r\n    New Form_frmNeuerArtikel\r\n    With objFrmNeuerArtikel\r\n    .DefaultEditing = 1\r\n    .Modal = True\r\n    .Visible = True\r\n    End With\r\n    End Sub<\/pre>\n<p><!--30percent--><\/p>\n<p>Die Routine erzeugt zun&auml;chst eine neue Instanz des Klassenmoduls <b>Form_frmNeuerArtikel<\/b>, was zusammen mit dem Sichtbarmachen einem herk&ouml;mmlichen <b>DoCmd.OpenForm<\/b>-Aufruf entspricht. Hinzu kommt das Einstellen der verborgenen Eigenschaft <b>DefaultEditing <\/b>auf den Wert <b>1 <\/b>und der Eigenschaft <b>Modal <\/b>auf <b>True<\/b>. Letzteres bewirkt zusammen mit dem Setzen der Eigenschaft <b>Popup <\/b>des Formulars die Anzeige des Formulars als modaler Dialog. Hier gibt es einen wichtigen Unterschied im Vergleich zu der Wirkung von <b>DoCmd.OpenForm &#8222;frm&#8220;, WindowMode:=acDialog<\/b>: Der Benutzer kann zwar genauso wenig auf die &uuml;brigen Access-Elemente zugreifen, w&auml;hrend das Formular ge&ouml;ffnet ist, aber der aufrufende Code l&auml;uft weiter. Und genau das er&ouml;ffnet ganz neue M&ouml;glichkeiten &#8211; dazu jedoch sp&auml;ter mehr.<\/p>\n<p>Zun&auml;chst noch einige Anmerkungen: Wenn Sie ein Formular entsprechend mit dem Parameter <b>DataMode <\/b>der <b>DoCmd.OpenForm<\/b>-Methode &ouml;ffnen m&ouml;chten, m&uuml;ssen Sie die entsprechenden VBA-Eigenschaften daf&uuml;r verwenden.<\/p>\n<p>Genau genommen reicht es, wenn Sie wie in obigem Aufruf einfach nur die Eigenschaft <b>DefaultEditing <\/b>auf einen Wert zwischen <b>1 <\/b>und <b>4 <\/b>einstellen. Tabelle 1 zeigt, welche Werte die verschiedenen Eigenschaften eines Formulars bei Aufrufen mit unterschiedlichen Werten f&uuml;r den Parameter <b>DataMode<\/b> annehmen. Wenn Sie einen neuen Datensatz anlegen m&ouml;chten, brauchen Sie <b>DefaultEditing <\/b>also einfach nur auf den Wert <b>1 <\/b>einzustellen. &Uuml;brigens k&ouml;nnen Sie <b>DefaultEditing <\/b>auch mit dem Wert <b>4 <\/b>belegen. Dies f&uuml;hrt dann dazu, dass der Benutzer alles mit den Daten im Formular erledigen kann, au&szlig;er neue Daten hinzuf&uuml;gen.<\/p>\n<p><b>DefaultEditing<\/b> ist &uuml;brigens eine veraltete und im Objektkatalog verborgene Eigenschaft, die wohl offiziell nicht mehr unterst&uuml;tzt wird. Stattdessen soll man nun die &uuml;brigen Eigenschaften aus Tab. 1 verwenden, um die datenbezogenen Eigenschaften eines Formulars einzustellen. In der Tat zieht das Einstellen von <b>DefaultEditing <\/b>die entsprechende Anpassung der &uuml;brigen Eigenschaften nach sich, wie der Aufruf der folgenden Testroutine belegt:<\/p>\n<pre>Public Sub test()\r\nDim i As Integer\r\nWith Forms!frmNeuerArtikel\r\nFor i = 1 To 5\r\n .DefaultEditing = i\r\n    Debug.Print \"DefaultEditing: \" _\r\n    &amp; .DefaultEditing\r\n    Debug.Print \"DataEntry: \" _\r\n    &amp; .DataEntry\r\n    Debug.Print \"AllowEditions: \" _\r\n    &amp; .AllowAdditions\r\n    Debug.Print \"AllowDeletions: \" _\r\n    &amp; .AllowDeletions\r\n    Debug.Print \"AllowEdits: \" _\r\n    &amp; .AllowEdits\r\n    Debug.Print \"AllowEditing: \" _\r\n    &amp; .AllowEditing\r\n    Debug.Print \"AllowUpdating: \" _\r\n    &amp; .AllowUpdating\r\nNext i\r\nEnd With\r\nEnd Sub<\/pre>\n<p>Das Durchlaufen der Schleife bis zum Wert <b>5 <\/b>belegt dann auch, dass es nur vier m&ouml;gliche Werte gibt &#8211; siehe Fehlermeldung aus Bild 3. Diese liefert auch noch die deutschen Bezeichnungen f&uuml;r die vier Einstellungen.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2009_05\/ModaleDialogMalAnders-web-images\/pic003_opt.jpeg\" alt=\"pic003.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3: Ausgabe der durch das &auml;ndern der Eigenschaft DefaultEditing angepassten Attribute<\/span><\/b><\/p>\n<p><b>Werte &uuml;bergeben<\/b><\/p>\n<p>Nach diesem kleinen Ausflug kehren wir zur&uuml;ck zum Beispiel. Das Popup-Formular dient dem Hinzuf&uuml;gen neuer Artikel f&uuml;r die Kategorie, die im aufrufenden Formular gerade angezeigt wurde. Daher macht es Sinn, das Feld <b>KategorieID <\/b>vorzubelegen. Beim klassischen Aufruf mit <b>DoCmd.OpenForm <\/b>w&uuml;rden Sie diesen Wert mit dem &Ouml;ffnungsparameter <b>OpenArgs <\/b>an das Formular &uuml;bergeben und diesen dort mit <b>Me.OpenArgs <\/b>auswerten.<\/p>\n<p>Im vorliegenden Fall gehen wir einen v&ouml;llig anderen Weg, der aber auch erst dadurch m&ouml;glich wird, dass wir das Formular zwar als modalen Dialog aufrufen, der aufrufende Code aber weiterl&auml;uft. Wir k&ouml;nnten also schlicht auf das aufgerufene Formular zugreifen und den Wert seiner Steuerelemente &auml;ndern. Dies ginge etwa so:<\/p>\n<pre>Forms!frmNeuerArtikel!KategorieID = 1<\/pre>\n<p>Damit w&uuml;rden Sie aber schon einen konkreten Wert einstellen und den neuen, leeren Datensatz in den <b>Dirty<\/b>-Zustand versetzen. Dies w&uuml;rde sich zun&auml;chst wie in Bild 4 bemerkbar machen, au&szlig;erdem k&ouml;nnte der Benutzer das Formular nun nicht mehr einfach mit der <b>OK<\/b>-Schaltfl&auml;che schlie&szlig;en, weil quasi ein neuer Datensatz angelegt wurde, der validiert wird. Dies f&uuml;hrt in der Beispieldatenbank etwa dazu, dass Access nach der Eingabe eines Artikelnamens verlangt.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2009_05\/ModaleDialogMalAnders-web-images\/pic004_opt.jpeg\" alt=\"pic004.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4: Das Einstellen eines Feldes auf einen neuen Wert versetzt das Formular in den Dirty-Status.<\/span><\/b><\/p>\n<p>Besser w&auml;re es, die ID der Kategorie vorerst als Standardwert f&uuml;r die Kategorie einzustellen:<\/p>\n<pre>objFrmNeuerArtikel.\r\nKategorieID.DefaultValue = 1<\/pre>\n<p>Der Datensatz wird vom Popup-Formular nun immer noch als unbearbeitet angezeigt, wie Bild 5 best&auml;tigt.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2009_05\/ModaleDialogMalAnders-web-images\/pic005_opt.jpeg\" alt=\"pic005.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5: Stellt man den Standardwert ein, bleibt der Datensatz unber&uuml;hrt.<\/span><\/b><\/p>\n<p>Warum aber soll &uuml;berhaupt die aufrufende Instanz entscheiden, ob der Wert von <b>KategorieID <\/b>als <b>Value <\/b>oder erstmal nur als <b>DefaultValue <\/b>festgelegt werden soll Immerhin ist doch das Formular <b>frmNeuerArtikel <\/b>die Fachkompetenz in Sachen Artikel anlegen. Also verlagern wir dies in das Popup-Formular und &uuml;bergeben einfach nur den Wert. Wie aber soll dies geschehen, ohne sich auf einen Weg festzulegen Ganz einfach: Wir f&uuml;gen dem Popup-Formular eine Eigenschaft hinzu, die den Wert entgegennimmt und diesen weiterverarbeitet. Im VBA-Klassenmodul des Formulars sieht dies etwa so aus:<\/p>\n<pre>Public Property Let prpKategorieID(\r\nlngKategorieID As Long)\r\nMe!KategorieID.DefaultValue = lngKategorieID\r\nEnd Property<\/pre>\n<p>Der Prozedur <b>cmdNeuerArtikel_Click <\/b>im Formular <b>frmKategorienArtikel <\/b>f&uuml;gen Sie diese Zeile hinzu:<\/p>\n<pre>objFrmNeuerArtikel.prpKategorieID =\r\nMe.KategorieID<\/pre>\n<p>Die <b>Public Property <\/b>im Formular <b>frmNeuerArtikel <\/b>wertet den &uuml;bergebenen Wert aus und schreibt ihn in das Feld <b>KategorieID <\/b>&#8211; in diesem Fall als <b>DefaultValue<\/b>.<\/p>\n<p>Bislang bietet das nat&uuml;rlich keine wesentlichen Vorteile gegen&uuml;ber der Parameter&uuml;bergabe per <b>OpenArgs<\/b>. Sobald Sie aber zwei oder mehr Parameter verwenden, wird der Code hierdurch deutlich &uuml;bersichtlicher.<\/p>\n<p><b>Auslesen nach dem Schlie&szlig;en<\/b><\/p>\n<p>Eine weitere Vorgabe war, dass die aufrufende Instanz &uuml;ber den anstehenden Schlie&szlig;vorgang des Popup-Formulars informiert wird und eingreifen kann, um gegebenenfalls noch Informationen aus seinen Steuerelementen einzulesen.<\/p>\n<p>Dazu verwenden wir eine benutzerdefinierte Ereignisprozedur (Grundlagen hierzu finden Sie im Beitrag <b>Ereignisse im Eigenbau<\/b>, Shortlink 685).<\/p>\n<p>Diese erfordert zun&auml;chst die Definition in einer Zeile wie dieser:<\/p>\n<pre>Public Event BeforeFormClose()<\/pre>\n<p>Das Ereignis m&uuml;ssen wir noch irgendwo ausl&ouml;sen. Ein guter Zeitpunkt w&auml;re das Ereignis <b>Beim Schlie&szlig;en <\/b>des Formulars:<\/p>\n<pre>Private Sub Form_Close()\r\nRaiseEvent BeforeFormClose\r\nEnd Sub<\/pre>\n<p>Durch diese Routine erm&ouml;glichen Sie es dem aufrufenden Formular, in einer entsprechenden Implementierung in Form einer Ereignisprozedur auf dieses Ereignis zu reagieren.<\/p>\n<p>Dazu m&uuml;ssen Sie zun&auml;chst die Deklaration der Formularklasse um das Schl&uuml;sselwort <b>WithEvents <\/b>erweitern:<\/p>\n<pre>Dim WithEvents objFrmNeuerArtikel As\r\nForm_frmNeuerArtikel<\/pre>\n<p>Dann w&auml;hlen Sie einfach aus dem linken Kombinationsfeld des Code-Fensters im VBA-Editor den Eintrag <b>objFrmNeuerArtikel <\/b>aus.<\/p>\n<p>Da derzeit nur ein Ereignis verf&uuml;gbar ist, w&auml;hlt der VBA-Editor dieses gleich im rechten Kombinationsfeld aus und legt automatisch den folgenden Prozedurrumpf an:<\/p>\n<pre>Private Sub objFrmNeuerArtikel_BeforeFormClose()\r\nEnd Sub<\/pre>\n<p>Diese Routine soll den Wert des Feldes <b>ArtikelID <\/b>f&uuml;r den neu angelegten Datensatz auslesen, das Unterformular <b>sfmKategorienArtikel <\/b>aktualisieren und den Datensatzzeiger auf den neuen Artikel verschieben. Dies erledigt die folgende Routine:<\/p>\n<pre>Private Sub objFrmNeuerArtikel_BeforeFormClose()\r\nDim lngArtikelID As Long\r\nIf Not IsNull(objFrmNeuerArtikel.ArtikelID)\r\nThen\r\nlngArtikelID =\r\nobjFrmNeuerArtikel.ArtikelID\r\nMe!sfmKategorienArtikel.Form.Requery\r\nMe!sfmKategorienArtikel.Form.Recordset.\r\nFindFirst \"ArtikelID = \" &amp; lngArtikelID\r\nEnd If\r\nEnd Sub<\/pre>\n<p>Die Variante ist nat&uuml;rlich verbesserungsf&auml;hig: Die Ereignisprozedur k&ouml;nnte die ID des neuen Artikels auch gleich als Parameter liefern. Das w&uuml;rde den Zugriff auf das Popup-Formular und eine weitere Referenz im Code sparen. Die Deklaration des Ereignisses sieht nun so aus:<\/p>\n<pre>Public Event BeforeFormClose(lngArtikelID As Long)<\/pre>\n<p>Der Aufruf in der Ereignisprozedur <b>Form_Close <\/b>kann so bleiben, wie er ist. Sie k&ouml;nnen aber auch gleich hier pr&uuml;fen, ob <b>ArtikelID <\/b>einen Wert enth&auml;lt, und das Ereignis nur in diesem Fall ausl&ouml;sen:<\/p>\n<pre>Private Sub Form_Close()\r\nIf Not IsNull(Me!ArtikelID) Then\r\nRaiseEvent BeforeFormClose\r\nEnd If\r\nEnd Sub<\/pre>\n<p>Die Ereignisprozedur im aufrufenden Formular wirkt nun auch deutlich schlanker:<\/p>\n<pre>Private Sub objFrmNeuerArtikel_\r\nBeforeFormClose(lngArtikelID As Long)\r\nMe!sfmKategorienArtikel.Form.Requery\r\nMe!sfmKategorienArtikel.Form.Recordset.\r\nFindFirst \"ArtikelID = \" &amp; lngArtikelID\r\nEnd Sub<\/pre>\n<p>Nat&uuml;rlich k&ouml;nnen Sie auch weitere benutzerdefinierte Ereignisse anlegen. Wenn Sie dem Benutzer beispielsweise die M&ouml;glichkeit bieten wollen, selbstst&auml;ndig die voreingestellte Kategorie zu &auml;ndern, k&ouml;nnen Sie daf&uuml;r sorgen, dass die Kategorie auch im aufrufenden Formular synchron ge&auml;ndert wird.<\/p>\n<p>Hier verwenden wir gleich einen Parameter, der die <b>KategorieID <\/b>im Popup-Formular liefert:<\/p>\n<pre>Public Event KategorieIDChanged(lngKategorieID As Long)<\/pre>\n<p>Das &auml;ndern der Kategorie tracken wir mit dem Ereignis <b>Nach Aktualisierung<\/b>:<\/p>\n<pre>Private Sub KategorieID_AfterUpdate()\r\nRaiseEvent KategorieIDChanged(Me.KategorieID)\r\nEnd Sub<\/pre>\n<p>Im aufrufenden Formular reagieren wir wie folgt auf dieses Ereignis:<\/p>\n<pre>Private Sub objFrmNeuerArtikel_KategorieID\r\nChanged(lngKategorieID As Long)\r\nMe.Recordset.FindFirst \"KategorieID = \"\r\n&amp; lngKategorieID\r\nEnd Sub<\/pre>\n<p><b>Zusammenfassung und Ausblick<\/b><\/p>\n<p>Die Verwendung der hier vorgestellten alternativen Methode zum &Ouml;ffnen modaler Dialoge ist immer dann interessant, wenn Sie auf eine einfachere und &uuml;bersichtlichere Kontrolle der Abl&auml;ufe Wert legen und keine unn&ouml;tigen Abh&auml;ngigkeiten zwischen den beteiligten Formularen w&uuml;nschen.<\/p>\n<p>Damit lassen sich dem Popup-Formular beliebig viele Parameter zuweisen, was sonst nur aufwendiger etwa &uuml;ber ein Zusammensetzen der Parameter im <b>OpenArgs<\/b>-Argument und anschlie&szlig;endes Parsen der einzelnen Elemente m&ouml;glich w&auml;re.<\/p>\n<table class=\"table-style-2\">\n<thead>\n<tr>\n<td>\n<p class=\"tabellenkopf\">Wert f&uuml;r DataMode<\/p>\n<\/td>\n<td>\n<p class=\"tabellenkopf\">DataEntry<\/p>\n<\/td>\n<td>\n<p class=\"tabellenkopf\">AllowAdditions<\/p>\n<\/td>\n<td>\n<p class=\"tabellenkopf\">AllowDeletions<\/p>\n<\/td>\n<td>\n<p class=\"tabellenkopf\">AllowEdits<\/p>\n<\/td>\n<td>\n<p class=\"tabellenkopf\">AllowEditing<\/p>\n<\/td>\n<td>\n<p class=\"tabellenkopf\">DefaultEditing<\/p>\n<\/td>\n<td>\n<p class=\"tabellenkopf\">AllowUpdating<\/p>\n<\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<\/tr>\n<tr>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<\/tr>\n<tr>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<td class=\"aiu-zeile1\">\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><b><span style=\"color:darkgrey\">Tab. 1: Werte f&uuml;r den Parameter DataMode und die daraus resultierenden Einstellungen<\/span><\/b><\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>ModaleDialogeMalAnders.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/{774FD35C-2AA8-4EF5-96E8-4B95D7274415}\/aiu_682.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Unter modalen Dialogen verstehen wir Formulare zur Eingabe von Daten, die so ge&ouml;ffnet werden, dass der Benutzer w&auml;hrend der Eingabe nichts anderes in Access tun kann als in diesem Formular zu arbeiten. Zum &Ouml;ffnen eines solchen Formulars verwendet man &uuml;blicherweise den Parameter WindowMode:=acDialog, was den praktischen Nebeneffekt hat, dass der aufrufende Code stehenbleibt. Wir zeigen, welche Vor- und Nachteile dies bringt und welche Alternative es gibt.<\/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":[662009,66052009,44000023],"tags":[],"class_list":["post-55000682","post","type-post","status-publish","format-standard","hentry","category-662009","category-66052009","category-Mit_Formularen_arbeiten"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Modale Dialoge mal anders - 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\/Modale_Dialoge_mal_anders\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Modale Dialoge mal anders\" \/>\n<meta property=\"og:description\" content=\"Unter modalen Dialogen verstehen wir Formulare zur Eingabe von Daten, die so ge&ouml;ffnet werden, dass der Benutzer w&auml;hrend der Eingabe nichts anderes in Access tun kann als in diesem Formular zu arbeiten. Zum &Ouml;ffnen eines solchen Formulars verwendet man &uuml;blicherweise den Parameter WindowMode:=acDialog, was den praktischen Nebeneffekt hat, dass der aufrufende Code stehenbleibt. Wir zeigen, welche Vor- und Nachteile dies bringt und welche Alternative es gibt.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Modale_Dialoge_mal_anders\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-22T22:17:28+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg04.met.vgwort.de\/na\/71ee060a65e14774894f792165d471bf\" \/>\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\\\/Modale_Dialoge_mal_anders\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Modale_Dialoge_mal_anders\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Modale Dialoge mal anders\",\"datePublished\":\"2020-05-22T22:17:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Modale_Dialoge_mal_anders\\\/\"},\"wordCount\":2186,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Modale_Dialoge_mal_anders\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/71ee060a65e14774894f792165d471bf\",\"articleSection\":[\"2009\",\"5\\\/2009\",\"Mit Formularen arbeiten\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Modale_Dialoge_mal_anders\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Modale_Dialoge_mal_anders\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Modale_Dialoge_mal_anders\\\/\",\"name\":\"Modale Dialoge mal anders - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Modale_Dialoge_mal_anders\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Modale_Dialoge_mal_anders\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/71ee060a65e14774894f792165d471bf\",\"datePublished\":\"2020-05-22T22:17:28+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Modale_Dialoge_mal_anders\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Modale_Dialoge_mal_anders\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Modale_Dialoge_mal_anders\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/71ee060a65e14774894f792165d471bf\",\"contentUrl\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/71ee060a65e14774894f792165d471bf\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Modale_Dialoge_mal_anders\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Modale Dialoge mal anders\"}]},{\"@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":"Modale Dialoge mal anders - 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\/Modale_Dialoge_mal_anders\/","og_locale":"de_DE","og_type":"article","og_title":"Modale Dialoge mal anders","og_description":"Unter modalen Dialogen verstehen wir Formulare zur Eingabe von Daten, die so ge&ouml;ffnet werden, dass der Benutzer w&auml;hrend der Eingabe nichts anderes in Access tun kann als in diesem Formular zu arbeiten. Zum &Ouml;ffnen eines solchen Formulars verwendet man &uuml;blicherweise den Parameter WindowMode:=acDialog, was den praktischen Nebeneffekt hat, dass der aufrufende Code stehenbleibt. Wir zeigen, welche Vor- und Nachteile dies bringt und welche Alternative es gibt.","og_url":"https:\/\/access-im-unternehmen.de\/Modale_Dialoge_mal_anders\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-22T22:17:28+00:00","og_image":[{"url":"http:\/\/vg04.met.vgwort.de\/na\/71ee060a65e14774894f792165d471bf","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\/Modale_Dialoge_mal_anders\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Modale_Dialoge_mal_anders\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Modale Dialoge mal anders","datePublished":"2020-05-22T22:17:28+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Modale_Dialoge_mal_anders\/"},"wordCount":2186,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Modale_Dialoge_mal_anders\/#primaryimage"},"thumbnailUrl":"http:\/\/vg04.met.vgwort.de\/na\/71ee060a65e14774894f792165d471bf","articleSection":["2009","5\/2009","Mit Formularen arbeiten"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Modale_Dialoge_mal_anders\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Modale_Dialoge_mal_anders\/","url":"https:\/\/access-im-unternehmen.de\/Modale_Dialoge_mal_anders\/","name":"Modale Dialoge mal anders - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Modale_Dialoge_mal_anders\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Modale_Dialoge_mal_anders\/#primaryimage"},"thumbnailUrl":"http:\/\/vg04.met.vgwort.de\/na\/71ee060a65e14774894f792165d471bf","datePublished":"2020-05-22T22:17:28+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Modale_Dialoge_mal_anders\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Modale_Dialoge_mal_anders\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Modale_Dialoge_mal_anders\/#primaryimage","url":"http:\/\/vg04.met.vgwort.de\/na\/71ee060a65e14774894f792165d471bf","contentUrl":"http:\/\/vg04.met.vgwort.de\/na\/71ee060a65e14774894f792165d471bf"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Modale_Dialoge_mal_anders\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Modale Dialoge mal anders"}]},{"@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\/55000682","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=55000682"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000682\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000682"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000682"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000682"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}