{"id":55001468,"date":"2024-02-01T00:00:00","date_gmt":"2024-02-02T19:58:48","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1468"},"modified":"2024-02-18T21:39:30","modified_gmt":"2024-02-18T21:39:30","slug":"standardwerte_fuer_fremdschluesselfelder_pflegen","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/standardwerte_fuer_fremdschluesselfelder_pflegen\/","title":{"rendered":"Standardwerte f&uuml;r Fremdschl&uuml;sselfelder pflegen"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg02.met.vgwort.de\/na\/6bc1ac35d7354c9abd579118fda12775\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>F&uuml;r Felder in Tabellen kann man jeweils einen Standardwert im Tabellenentwurf festlegen, der beim Anlegen eines neuen Datensatzes in dieser Tabelle vorbelegt wird. Etwas anspruchsvoller ist es, wenn wir Standardwerte durch den Benutzer festlegen wollen. Noch einen Schritt weiter gehen wir, wenn der Standardwert f&uuml;r ein Fremdschl&uuml;sselfeld verwendet werden soll &#8211; also zur Auswahl eines Datensatzes aus einer verkn&uuml;pften Tabelle. Einfache Beispiele sind Anreden, Zahlungsmethoden, Priorit&auml;ten oder Kategorien. Hier k&ouml;nnen wir jeweils einen Eintrag anwendungsweit festlegen. Es geht aber auch noch anspruchsvoller: Wenn wir beispielsweise Adressen f&uuml;r Kunden in einer eigenen Tabelle speichern, wo mehrere Adressen je Kunde angelegt werden k&ouml;nnen und nur eine als Standard verwendet werden soll. Sp&auml;testens hier m&uuml;ssen wir auch beim Datenmodell umdenken. In diesem Beitrag schauen wir uns erst einmal an, wie wir Standardwerte f&uuml;r Nachschlagefelder komfortabel ausw&auml;hlen k&ouml;nnen.<\/b><\/p>\n<h2>Einfache Standardwerte<\/h2>\n<p>In einem weiteren Beitrag namens <b>Benutzerdefinierte Standardwerte <\/b>(<b>www.access-im-unternehmen.de\/1466<\/b>) haben wir bereits eine L&ouml;sung aufgezeigt, mit der wir f&uuml;r die Felder von Tabellen Standardwerte festlegen k&ouml;nnen. Normalerweise kann man Standardwerte direkt f&uuml;r die Eigenschaft <b>Standardwert <\/b>eines Feldes im Tabellenentwurf definieren. Diese werden beim Anlegen von gebundenen Feldern auf Basis dieser Tabelle in Formularen automatisch in die entsprechende Steuerelementeigenschaft &uuml;bernommen. Allerdings m&ouml;chten die Benutzer gegebenenfalls ihre eigenen Standardwerte definieren. Das l&auml;sst sich jedoch nicht mit der Eigenschaft <b>Standardwert <\/b>des Tabellenentwurfs realisieren, denn dann m&uuml;sste man bei jeder &Auml;nderung den Entwurf der Tabelle anpassen. Also haben wir in obigem Beitrag eine L&ouml;sung gezeigt, wie wir diese Daten in einer eigenen Tabelle speichern und zur Laufzeit beim Verwenden gebundener Formulare abrufen und anwenden k&ouml;nnen.<\/p>\n<p>Dabei haben wir Zahlen-, Ja\/Nein- und Datumsfelder so behandelt, dass man den Wert in einem Popup-Formular eingibt, mit dem wir die als Standardwert eingegebenen Daten noch validieren konnten. Die Standardwerte von Textfeldern geben wir dort einfach so ein. Was noch fehlen w&uuml;rde, w&auml;re eine komfortablere Eingabe von Standardwerten aus Nachschlagefeldern. Hier m&uuml;sste man aktuell noch den Zahlenwert eingeben, welcher dem Prim&auml;rschl&uuml;sselfeld des zu verkn&uuml;pfenden Datensatzes entspricht (siehe Bild 1). Das ist recht unpraktisch, daher wollen wir im ersten Teil des vorliegenden Beitrags noch ein Popup-Formular f&uuml;r diesen Zweck hinzuf&uuml;gen und die L&ouml;sung zum Verwalten von Standardwerten entsprechend erweitern.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_01\/pic_1468_001.png\" alt=\"Standardwerte f&uuml;r Nachschlagefelder m&uuml;ssen noch von Hand eingegeben werden.\" width=\"549,559\" height=\"320,8715\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Standardwerte f&uuml;r Nachschlagefelder m&uuml;ssen noch von Hand eingegeben werden.<\/span><\/b><\/p>\n<h2>Standardwerte aus Fremdschl&uuml;sselfeldern<\/h2>\n<p>Das Endergebnis sieht wie in Bild 2 aus: Der Benutzer klickt auf einen Standardwert, der im Datenmodell als Nachschlagefeld definiert ist und kann im nun erscheinenden Popup die vorhandenen Eintr&auml;ge ausw&auml;hlen und als Standardwert festlegen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_01\/pic_1468_002.png\" alt=\"Die Auswahl per Kombinationsfeld w&auml;re wesentlich ergonomischer.\" width=\"549,559\" height=\"303,8838\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Die Auswahl per Kombinationsfeld w&auml;re wesentlich ergonomischer.<\/span><\/b><\/p>\n<h2>Anpassungen des Datenmodells<\/h2>\n<p>Um im Popup das Nachschlagefeld nachzubilden, das im Entwurf der Tabelle mit dem entsprechenden Feld enthaltenen ist, wollen wir ein paar Informationen zus&auml;tzlich zu diesem Feld in der Tabelle <b>tblStandardwerte <\/b>speichern. Diese nimmt bisher haupts&auml;chlich den Namen der Tabelle und des Feldes auf, f&uuml;r das wir einen Standardwert speichern wollen. Hier kommen nun noch die wesentlichen Felder f&uuml;r die Anzeige eines Nachschlagefeldes hinzu, die wir direkt nach den entsprechenden Eigenschaften des Nachschlagefeldes benennen:<\/p>\n<ul>\n<li><b>RowSource<\/b>: Tabelle, Abfrage oder SQL-Ausdruck mit der Datensatzherkunft des Nachschlagefeldes<\/li>\n<li><b>BoundColumn<\/b>: Gebundene Spalte der Datensatzherkunft<\/li>\n<li><b>ColumnWidths<\/b>: Spaltenbreiten, zum Beispiel <b>0;1440<\/b><\/li>\n<li><b>ColumnCount<\/b>: Anzahl der anzuzeigenden Spalten, zum Beispiel <b>2<\/b><\/li>\n<\/ul>\n<p>Diese Felder f&uuml;gen wir dem Entwurf der Tabelle <b>tblStandardwerte<\/b> wie in Bild 3 hinzu.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_01\/pic_1468_003.png\" alt=\"Zus&auml;tzliche Informationen zum Anzeigen von Nachschlagefeldern\" width=\"549,559\" height=\"429,2176\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Zus&auml;tzliche Informationen zum Anzeigen von Nachschlagefeldern<\/span><\/b><\/p>\n<h2>Anpassen des Einlesevorgangs<\/h2>\n<p>Die Daten zur Konfiguration der Nachschlagefelder wollen wir per Code in die Tabelle <b>tblStandardwerte<\/b> eintragen. Dazu passen wir die bisher verwendete Prozedur entsprechend an (siehe Listing 1). Wir f&uuml;gen zun&auml;chst Variablen zum Speichern der betroffenen Informationen hinzu.<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>FelderEinlesen(<span style=\"color:blue;\">Optional<\/span> bolStandardwerteUebernehmen<span style=\"color:blue;\"> As Boolean<\/span> = <span style=\"color:blue;\">False<\/span>)\n     <span style=\"color:blue;\">Dim <\/span>db<span style=\"color:blue;\"> As <\/span>DAO.Database, tdf<span style=\"color:blue;\"> As <\/span>DAO.TableDef, fld<span style=\"color:blue;\"> As <\/span>DAO.Field, prp<span style=\"color:blue;\"> As <\/span>DAO.Property, rst<span style=\"color:blue;\"> As <\/span>DAO.Recordset\n     <span style=\"color:blue;\">Dim <\/span>strRowSource<span style=\"color:blue;\"> As String<\/span>, lngBoundColumn<span style=\"color:blue;\"> As Long<\/span>, strColumnWidths<span style=\"color:blue;\"> As String<\/span>, lngColumnCount<span style=\"color:blue;\"> As Long<\/span>\n     <span style=\"color:blue;\">Dim <\/span>i<span style=\"color:blue;\"> As Integer<\/span>\n     <span style=\"color:blue;\">Set<\/span> db = CurrentDb\n     For Each tdf In db.TableDefs\n         Select Case <span style=\"color:blue;\">True<\/span>\n             <span style=\"color:blue;\">Case <\/span>tdf.Name Like \"MSys*\", tdf.Name Like \"USys*\", tdf.Name = \"tblStandardwerte\", tdf.Name = \"tblDatentypen\"\n             <span style=\"color:blue;\">Case Else<\/span>\n                 For Each fld In tdf.Fields\n                     strRowSource = \"\"\n                     lngBoundColumn = 0\n                     strColumnWidths = \"\"\n                     lngColumnCount = 0\n                     <span style=\"color:blue;\">Set<\/span> prp = Nothing\n                     On Error Resume <span style=\"color:blue;\">Next<\/span>\n                     <span style=\"color:blue;\">Set<\/span> prp = fld.Properties(\"DisplayControl\")\n                     <span style=\"color:blue;\">On Error GoTo<\/span> 0\n                     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> prp Is Nothing<span style=\"color:blue;\"> Then<\/span>\n                         <span style=\"color:blue;\">If <\/span>prp.Value = acComboBox<span style=\"color:blue;\"> Then<\/span>\n                             strRowSource = fld.Properties(\"RowSource\")\n                             lngBoundColumn = fld.Properties(\"BoundColumn\")\n                             strColumnWidths = fld.Properties(\"ColumnWidths\")\n                             lngColumnCount = fld.Properties(\"ColumnCount\")\n                         <span style=\"color:blue;\">End If<\/span>\n                     <span style=\"color:blue;\">End If<\/span>\n                     On Error Resume <span style=\"color:blue;\">Next<\/span>\n                     <span style=\"color:blue;\">If <\/span>bolStandardwerteUebernehmen<span style=\"color:blue;\"> Then<\/span>\n                         db.Execute \"INSERT INTO tblStandardwerte(Tabellenname, Feldname, Standardwert, DatentypID, \" _\n                             &\"RowSource, BoundColumn, ColumnWidths, ColumnCount) VALUES(''\" & tdf.Name & \"'', ''\" _\n                             & fld.Name & \"'', ''\" & fld.DefaultValue & \"'', \" & fld.Type & \", ''\" & strRowSource & \"'', \" _\n                             & lngBoundColumn & \", ''\" & strColumnWidths & \"'', \" & lngColumnCount & \")\", dbFailOnError\n                     <span style=\"color:blue;\">Else<\/span>\n                         ...\n                     <span style=\"color:blue;\">End If<\/span>\n                     Select Case Err.Number\n                         <span style=\"color:blue;\">Case <\/span>3022\n                             <span style=\"color:blue;\">On Error GoTo<\/span> 0\n                             <span style=\"color:blue;\">If <\/span>bolStandardwerteUebernehmen<span style=\"color:blue;\"> Then<\/span>\n                                 db.Execute \"UPDATE tblStandardwerte SET Tabellenname = ''\" & tdf.Name & \"'', \" _\n                                     & \"Feldname = ''\" & fld.Name & \"'', Standardwert = ''\" & fld.DefaultValue _\n                                     & \"'', DatentypID = \" & fld.Type & \", RowSource = ''\" & strRowSource _\n                                     & \"'', BoundColumn = \" & lngBoundColumn & \", ColumnWidths = ''\" & strColumnWidths _\n                                     & \"'', ColumnCount = \" & lngColumnCount & \" WHERE Tabellenname = ''\" & tdf.Name _\n                                     & \"'' AND Feldname = ''\" & fld.Name & \"''\", dbFailOnError\n                             <span style=\"color:blue;\">Else<\/span>\n                                 ...\n                             <span style=\"color:blue;\">End If<\/span>\n                         <span style=\"color:blue;\">Case <\/span>0\n                         <span style=\"color:blue;\">Case Else<\/span>\n                             <span style=\"color:blue;\">MsgBox<\/span> \"Fehler \" & Err.Number & \":\" & <span style=\"color:blue;\">vbCrLf<\/span> & <span style=\"color:blue;\">vbCrLf<\/span> & Err.Description\n                     <span style=\"color:blue;\">End Select<\/span>\n                     <span style=\"color:blue;\">On Error GoTo<\/span> 0\n                 <span style=\"color:blue;\">Next<\/span> fld\n         <span style=\"color:blue;\">End Select<\/span>\n     <span style=\"color:blue;\">Next<\/span> tdf\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Erweiterung der Prozedur zum Anlegen der Tabellen und Felder f&uuml;r die Standardwerte<\/span><\/b><\/p>\n<p>Beim Durchlaufen der Tabellen und Felder setzen wir die Variablen <b>strRowSource <\/b>und  <b>strColumnWidths <\/b>auf eine leere Zeichenkette und <b>lngBoundColumn <\/b>und <b>lngColumnCount <\/b>auf den Wert <b>0 <\/b>ein, damit diese Werte in die Tabelle eingetragen werden, sollte es sich beim aktuellen Feld nicht um ein Nachschlagefeld handeln.<\/p>\n<p>Danach wollen wir herausfinden, ob es sich beim aktuellen Feld um ein Nachschlagefeld handelt. Dazu versuchen wir experimentell bei ausgeschalteter Fehlerbehandlung auf die Eigenschaft <b>DisplayControl <\/b>zuzugreifen. Die Fehlerbehandlung schalten wir aus, weil diese Eigenschaft standardm&auml;&szlig;ig zum Beispiel nur f&uuml;r <b>Ja\/Nein<\/b>-Felder und f&uuml;r Nachschlagefelder gesetzt wird. Ist <b>prp<\/b> danach nicht leer, ist die Eigenschaft vorhanden. Dann pr&uuml;fen wir, ob es sich um ein Kombinationsfeld handelt, was wir durch den Vergleich mit der Konstanten <b>acComboBox <\/b>erreichen. Ist auch diese Bedingung erf&uuml;llt, k&ouml;nnen wir die vier ben&ouml;tigten Eigenschaften aus dem <b>Field<\/b>-Objekt &uuml;ber die entsprechenden <b>Properties <\/b>einlesen.<\/p>\n<p>Die folgenden Abschnitte enthalten die SQL-Anweisungen, um die Daten in die Tabelle <b>tblStandardwerte <\/b>zu schreiben. Dazu erg&auml;nzen wir lediglich die entsprechenden Zuweisungen der Felder und Werte in den <b>INSERT INTO <\/b>und <b>UPDATE<\/b>-Anweisungen. Nach dem Ausf&uuml;hren der Prozedur, beispielsweise &uuml;ber die Schaltfl&auml;che <b>Felder einlesen <\/b>des Formulars <b>frmStandardwerte<\/b>, sieht der Inhalt der Tabelle wie in Bild 4 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_01\/pic_1468_004.png\" alt=\"Daten f&uuml;r die Erfassung der Standardwerte\" width=\"700\" height=\"214,0438\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Daten f&uuml;r die Erfassung der Standardwerte<\/span><\/b><\/p>\n<h2>Anzeigen eines eigenen Popup-Formulars f&uuml;r Nachschlagefelder<\/h2>\n<p>Nun ben&ouml;tigen wir zwei Dinge: ein neues Popup-Formular, das beim Anklicken eines als Nachschlagefeld ausgelegten Feldes im Formular <b>frmStandardwerte <\/b>angezeigt wird und einen entsprechenden Aufruf beim Anklicken des Textfeldes <b>txtStandardwert <\/b>im Unterformular <b>sfmStandardwerte<\/b>. F&uuml;r Letzteres brauchen wir nur die Prozedur anzupassen, die beim Loslassen der Maustaste auf dem Feld <b>txtStandardwert <\/b>ausgel&ouml;st wird (siehe Listing 2).<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>txtStandardwert_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>)\n     <span style=\"color:blue;\">If <\/span>Button = acLeftButton<span style=\"color:blue;\"> Then<\/span>\n         lngX = pt.X\n         lngY = pt.Y\n         <span style=\"color:blue;\">If <\/span>IsNull(Me!RowSource)<span style=\"color:blue;\"> Then<\/span>\n             Select Case Me!DatentypID\n                 <span style=\"color:blue;\">Case <\/span>dbBoolean\n                     ...\n                 <span style=\"color:blue;\">Case <\/span>dbByte, dbInteger, dbLong, dbCurrency, dbSingle, dbDouble, dbBigInt, dbDecimal\n                     ...\n                 <span style=\"color:blue;\">Case <\/span>dbDate\n                     ...\n             <span style=\"color:blue;\">End Select<\/span>\n         <span style=\"color:blue;\">Else<\/span>\n             <span style=\"color:blue;\">Set<\/span> frmLookup = <span style=\"color:blue;\">New<\/span> Form_frmStandardwertLookup\n             <span style=\"color:blue;\">With<\/span> frmLookup\n                 .OnUnload = \"[Event Procedure]\"\n                 .Modal = <span style=\"color:blue;\">True<\/span>\n                 .Standardwert = Me!txtStandardwert\n                 .RowSource = Me!RowSource\n                 .BoundColumn = Me!BoundColumn\n                 .ColumnWidths = Me!ColumnWidths\n                 .ColumnCount = Me!ColumnCount\n                 .Visible = <span style=\"color:blue;\">True<\/span>\n             End <span style=\"color:blue;\">With<\/span>\n         <span style=\"color:blue;\">End If<\/span>\n     <span style=\"color:blue;\">End If<\/span>\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 2: Aufruf des Popup-Formulars zur Auswahl eines Standardwertes f&uuml;r ein Nachschlagefeld<\/span><\/b><\/p>\n<p>Hier f&uuml;gen wir gleich zu Beginn eine neue <b>If&#8230;Then<\/b>-Bedingung ein. Diese pr&uuml;ft, ob das Feld <b>RowSource <\/b>des aktuellen Datensatzes einen Wert hat, was nur bei Nachschlagefeldern der Fall ist. Falls nein, werden in einer <b>Select Case<\/b>-Bedingung die &uuml;brigen Datentypen abgearbeitet.<\/p>\n<p>Falls ja, gelangen wir in den <b>Else<\/b>-Teil der Bedingung. Hier erstellen wir eine neue Instanz des noch zu beschreibenden Popup-Formulars <b>frmStandardwertLookup<\/b>. Diesem weisen wir die bereits bekannten Eigenschaftswerte zu. Neu sind die Eigenschaften <b>RowSource<\/b>, <b>BoundColumn<\/b>, <b>ColumnWidths <\/b>und <b>ColumnCount<\/b>, die wir mit den Werten aus dem aktuellen Datensatz des Unterformulars f&uuml;llen. Dann blendet die Prozedur das Formular ein.<\/p>\n<h2>Popup-Formular f&uuml;r Nachschlagefelder<\/h2>\n<p>Dieses Formular sieht im Entwurf wie in Bild 5 aus. Der Aufbau unterscheidet sich nicht von den &uuml;brigen Formularen &#8211; der einzige Unterschied ist, dass wir ein Kombinationsfeld namens <b>cbo <\/b>zur Auswahl des neuen Standardwerts anbieten.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_01\/pic_1468_005.png\" alt=\"Popup-Formular zur Auswahl von Standardwerten f&uuml;r Nachschlagefelder\" width=\"424,5589\" height=\"188,6929\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Popup-Formular zur Auswahl von Standardwerten f&uuml;r Nachschlagefelder<\/span><\/b><\/p>\n<p>Wenn das Formular geladen wird, positioniert die Prozedur <b>Form_Load <\/b>dieses an der Stelle des Mauszeigers:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Form_Load()\n     <span style=\"color:blue;\">Dim <\/span>rec<span style=\"color:blue;\"> As <\/span>RECT\n     GetWindowRect Me.hwnd, rec\n     MoveWindow Me.hwnd, lngX, lngY, _\n         rec.<span style=\"color:blue;\">Right<\/span> - rec.Left, rec.Bottom - rec.Top, <span style=\"color:blue;\">True<\/span>\n     Me!cbo.SetFocus\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Danach werden von der aufrufenden Prozedur die Werte f&uuml;r die verschiedenen Eigenschaften &uuml;bergeben. Den aktuellen Standardwert nimmt diese <b>Property Let<\/b>-Prozedur entgegen und tr&auml;gt diesen f&uuml;r das Kombinationsfeld <b>cbo <\/b>ein:<\/p>\n<pre><span style=\"color:blue;\">Public Property Let <\/span>Standardwert(var<span style=\"color:blue;\"> As Variant<\/span>)\n     Me!cbo = var\n<span style=\"color:blue;\">End Property<\/span><\/pre>\n<p>Die Einstellungen f&uuml;r das Kombinationsfeld, die sich nach den Eigenschaften des Tabellenfeldes richten, f&uuml;r welches der Standardwert ermittelt werden soll, nehmen die folgenden <b>Property Let<\/b>-Prozeduren entgegen und weisen diese direkt den entsprechenden Eigenschaften des Kombinationsfeldes zu:<\/p>\n<pre><span style=\"color:blue;\">Public Property Let <\/span>RowSource(strRowSource<span style=\"color:blue;\"> As String<\/span>)\n     Me!cbo.RowSource = strRowSource\n<span style=\"color:blue;\">End Property<\/span>\n<span style=\"color:blue;\">Public Property Let <\/span>BoundColumn(lngBoundColumn<span style=\"color:blue;\"> As Long<\/span>)\n     Me!cbo.BoundColumn = lngBoundColumn\n<span style=\"color:blue;\">End Property<\/span>\n<span style=\"color:blue;\">Public Property Let <\/span>ColumnWidths(strColumnWidths<span style=\"color:blue;\"> As String<\/span>)\n     Me!cbo.ColumnWidths = strColumnWidths\n<span style=\"color:blue;\">End Property<\/span>\n<span style=\"color:blue;\">Public Property Let <\/span>ColumnCount(lngColumnCount<span style=\"color:blue;\"> As Long<\/span>)\n     Me!cbo.ColumnCount = lngColumnCount\n<span style=\"color:blue;\">End Property<\/span><\/pre>\n<p>Beim Ausw&auml;hlen oder Eingeben des neuen Standardwertes kommt der Benutzer vielleicht auf die Idee, einen Wert einzugeben, der gar nicht in der Datensatzherkunft des Nachschlagefeldes enthalten ist. In diesem Fall soll eine Meldung erscheinen und der Wert zur&uuml;ckgesetzt werden. Au&szlig;erdem soll die in diesem Fall vom System ausgegebene Meldung in diesem Fall ausbleiben, was die folgende Prozedur erledigt, die durch das Ereignis <b>Bei nicht in Liste <\/b>ausgel&ouml;st wird:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cbo_NotInList(NewData<span style=\"color:blue;\"> As String<\/span>, _\n         Response<span style=\"color:blue;\"> As Integer<\/span>)\n     <span style=\"color:blue;\">MsgBox<\/span> \"Nur Listeneintr&auml;ge erlaubt.\", _\n         vbOKOnly + vbExclamation, \"Ung&uuml;ltige Auswahl\"\n     Me!cbo.Undo\n     Response = acDataErrContinue\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Schlie&szlig;lich bleibt noch der Abschluss der Eingabe. Die beiden Schaltfl&auml;chen <b>cmdAbbrechen <\/b>und <b>cmdOK <\/b>schlie&szlig;en beide das Formular und stellen den Wert der Variablen <b>m_Action <\/b>auf den Wert <b>Cancel <\/b>oder <b>OK <\/b>ein:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>m_Action<span style=\"color:blue;\"> As String<\/span>\n<span style=\"color:blue;\">Private Sub <\/span>cmdAbbrechen_Click()\n     m_Action = \"Cancel\"\n     DoCmd.Close acForm, Me.Name\n<span style=\"color:blue;\">End Sub<\/span>\n<span style=\"color:blue;\">Private Sub <\/span>cmdOK_Click()\n     m_Action = \"OK\"\n     DoCmd.Close acForm, Me.Name\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Diesen Wert stellt die Klasse mit der <b>Property Get<\/b>-Prozedur Action zur Verf&uuml;gung:<\/p>\n<pre><span style=\"color:blue;\">Public Property Get <\/span>Action()<span style=\"color:blue;\"> As String<\/span>\n     Action = m_Action\n<span style=\"color:blue;\">End Property<\/span><\/pre>\n<p>Den ausgew&auml;hlten Standardwert liest die aufrufende Prozedur direkt aus dem Steuerelement <b>cbo <\/b>aus. Damit haben wir unsere L&ouml;sung um das komfortable Ausw&auml;hlen von Nachschlagewerten erg&auml;nzt.<\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Die hier vorgestellte Erweiterung der L&ouml;sung aus dem Beitrag <b>Benutzerdefinierte Standardwerte <\/b>(<b>www.access-im-unternehmen.de\/1466<\/b>) erlaubt auch das einfache Eingeben von Standardwerten f&uuml;r Nachschlagefelder. <\/p>\n<p>Die Anwendung der Standardwerte erfolgt auf dem gleichen Wege wie bereits im genannten Beitrag beschrieben.<\/p>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>StandardwerteFuerFremdschluesselfelderPflegen.accdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/B4B47A1D-5F25-4951-B902-7AA6ECE73A56\/aiu_1468.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>F&uuml;r Felder in Tabellen kann man jeweils einen Standardwert im Tabellenentwurf festlegen, der beim Anlegen eines neuen Datensatzes in dieser Tabelle vorbelegt wird. Etwas anspruchsvoller ist es, wenn wir Standardwerte durch den Benutzer festlegen wollen. Noch einen Schritt weiter gehen wir, wenn der Standardwert f&uuml;r ein Fremdschl&uuml;sselfeld verwendet werden soll &#8211; also zur Auswahl eines Datensatzes aus einer verkn&uuml;pften Tabelle. Einfache Beispiele sind Anreden, Zahlungsmethoden, Priorit&auml;ten oder Kategorien. Hier k&ouml;nnen wir jeweils einen Eintrag anwendungsweit festlegen. Es geht aber auch noch anspruchsvoller: Wenn wir beispielsweise Adressen f&uuml;r Kunden in einer eigenen Tabelle speichern, wo mehrere Adressen je Kunde angelegt werden k&ouml;nnen und nur eine als Standard verwendet werden soll. Sp&auml;testens hier m&uuml;ssen wir auch beim Datenmodell umdenken. In diesem Beitrag schauen wir uns erst einmal an, wie wir Standardwerte f&uuml;r Nachschlagefelder komfortabel ausw&auml;hlen k&ouml;nnen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[66012024,662024,44000021],"tags":[],"class_list":["post-55001468","post","type-post","status-publish","format-standard","hentry","category-66012024","category-662024","category-Tabellen_und_Datenmodellierung"],"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>Standardwerte f&uuml;r Fremdschl&uuml;sselfelder pflegen - 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\/standardwerte_fuer_fremdschluesselfelder_pflegen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Standardwerte f&uuml;r Fremdschl&uuml;sselfelder pflegen\" \/>\n<meta property=\"og:description\" content=\"F&uuml;r Felder in Tabellen kann man jeweils einen Standardwert im Tabellenentwurf festlegen, der beim Anlegen eines neuen Datensatzes in dieser Tabelle vorbelegt wird. Etwas anspruchsvoller ist es, wenn wir Standardwerte durch den Benutzer festlegen wollen. Noch einen Schritt weiter gehen wir, wenn der Standardwert f&uuml;r ein Fremdschl&uuml;sselfeld verwendet werden soll - also zur Auswahl eines Datensatzes aus einer verkn&uuml;pften Tabelle. Einfache Beispiele sind Anreden, Zahlungsmethoden, Priorit&auml;ten oder Kategorien. Hier k&ouml;nnen wir jeweils einen Eintrag anwendungsweit festlegen. Es geht aber auch noch anspruchsvoller: Wenn wir beispielsweise Adressen f&uuml;r Kunden in einer eigenen Tabelle speichern, wo mehrere Adressen je Kunde angelegt werden k&ouml;nnen und nur eine als Standard verwendet werden soll. Sp&auml;testens hier m&uuml;ssen wir auch beim Datenmodell umdenken. In diesem Beitrag schauen wir uns erst einmal an, wie wir Standardwerte f&uuml;r Nachschlagefelder komfortabel ausw&auml;hlen k&ouml;nnen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/standardwerte_fuer_fremdschluesselfelder_pflegen\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-02T19:58:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-18T21:39:30+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg02.met.vgwort.de\/na\/6bc1ac35d7354c9abd579118fda12775\" \/>\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=\"9\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/standardwerte_fuer_fremdschluesselfelder_pflegen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/standardwerte_fuer_fremdschluesselfelder_pflegen\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Standardwerte f&uuml;r Fremdschl&uuml;sselfelder pflegen\",\"datePublished\":\"2024-02-02T19:58:48+00:00\",\"dateModified\":\"2024-02-18T21:39:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/standardwerte_fuer_fremdschluesselfelder_pflegen\\\/\"},\"wordCount\":1456,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/standardwerte_fuer_fremdschluesselfelder_pflegen\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/6bc1ac35d7354c9abd579118fda12775\",\"articleSection\":[\"1\\\/2024\",\"2024\",\"Tabellen und Datenmodellierung\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/standardwerte_fuer_fremdschluesselfelder_pflegen\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/standardwerte_fuer_fremdschluesselfelder_pflegen\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/standardwerte_fuer_fremdschluesselfelder_pflegen\\\/\",\"name\":\"Standardwerte f&uuml;r Fremdschl&uuml;sselfelder pflegen - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/standardwerte_fuer_fremdschluesselfelder_pflegen\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/standardwerte_fuer_fremdschluesselfelder_pflegen\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/6bc1ac35d7354c9abd579118fda12775\",\"datePublished\":\"2024-02-02T19:58:48+00:00\",\"dateModified\":\"2024-02-18T21:39:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/standardwerte_fuer_fremdschluesselfelder_pflegen\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/standardwerte_fuer_fremdschluesselfelder_pflegen\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/standardwerte_fuer_fremdschluesselfelder_pflegen\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/6bc1ac35d7354c9abd579118fda12775\",\"contentUrl\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/6bc1ac35d7354c9abd579118fda12775\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/standardwerte_fuer_fremdschluesselfelder_pflegen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Standardwerte f&uuml;r Fremdschl&uuml;sselfelder pflegen\"}]},{\"@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":"Standardwerte f&uuml;r Fremdschl&uuml;sselfelder pflegen - 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\/standardwerte_fuer_fremdschluesselfelder_pflegen\/","og_locale":"de_DE","og_type":"article","og_title":"Standardwerte f&uuml;r Fremdschl&uuml;sselfelder pflegen","og_description":"F&uuml;r Felder in Tabellen kann man jeweils einen Standardwert im Tabellenentwurf festlegen, der beim Anlegen eines neuen Datensatzes in dieser Tabelle vorbelegt wird. Etwas anspruchsvoller ist es, wenn wir Standardwerte durch den Benutzer festlegen wollen. Noch einen Schritt weiter gehen wir, wenn der Standardwert f&uuml;r ein Fremdschl&uuml;sselfeld verwendet werden soll - also zur Auswahl eines Datensatzes aus einer verkn&uuml;pften Tabelle. Einfache Beispiele sind Anreden, Zahlungsmethoden, Priorit&auml;ten oder Kategorien. Hier k&ouml;nnen wir jeweils einen Eintrag anwendungsweit festlegen. Es geht aber auch noch anspruchsvoller: Wenn wir beispielsweise Adressen f&uuml;r Kunden in einer eigenen Tabelle speichern, wo mehrere Adressen je Kunde angelegt werden k&ouml;nnen und nur eine als Standard verwendet werden soll. Sp&auml;testens hier m&uuml;ssen wir auch beim Datenmodell umdenken. In diesem Beitrag schauen wir uns erst einmal an, wie wir Standardwerte f&uuml;r Nachschlagefelder komfortabel ausw&auml;hlen k&ouml;nnen.","og_url":"https:\/\/access-im-unternehmen.de\/standardwerte_fuer_fremdschluesselfelder_pflegen\/","og_site_name":"Access im Unternehmen","article_published_time":"2024-02-02T19:58:48+00:00","article_modified_time":"2024-02-18T21:39:30+00:00","og_image":[{"url":"http:\/\/vg02.met.vgwort.de\/na\/6bc1ac35d7354c9abd579118fda12775","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"9\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/standardwerte_fuer_fremdschluesselfelder_pflegen\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/standardwerte_fuer_fremdschluesselfelder_pflegen\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Standardwerte f&uuml;r Fremdschl&uuml;sselfelder pflegen","datePublished":"2024-02-02T19:58:48+00:00","dateModified":"2024-02-18T21:39:30+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/standardwerte_fuer_fremdschluesselfelder_pflegen\/"},"wordCount":1456,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/standardwerte_fuer_fremdschluesselfelder_pflegen\/#primaryimage"},"thumbnailUrl":"http:\/\/vg02.met.vgwort.de\/na\/6bc1ac35d7354c9abd579118fda12775","articleSection":["1\/2024","2024","Tabellen und Datenmodellierung"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/standardwerte_fuer_fremdschluesselfelder_pflegen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/standardwerte_fuer_fremdschluesselfelder_pflegen\/","url":"https:\/\/access-im-unternehmen.de\/standardwerte_fuer_fremdschluesselfelder_pflegen\/","name":"Standardwerte f&uuml;r Fremdschl&uuml;sselfelder pflegen - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/standardwerte_fuer_fremdschluesselfelder_pflegen\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/standardwerte_fuer_fremdschluesselfelder_pflegen\/#primaryimage"},"thumbnailUrl":"http:\/\/vg02.met.vgwort.de\/na\/6bc1ac35d7354c9abd579118fda12775","datePublished":"2024-02-02T19:58:48+00:00","dateModified":"2024-02-18T21:39:30+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/standardwerte_fuer_fremdschluesselfelder_pflegen\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/standardwerte_fuer_fremdschluesselfelder_pflegen\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/standardwerte_fuer_fremdschluesselfelder_pflegen\/#primaryimage","url":"http:\/\/vg02.met.vgwort.de\/na\/6bc1ac35d7354c9abd579118fda12775","contentUrl":"http:\/\/vg02.met.vgwort.de\/na\/6bc1ac35d7354c9abd579118fda12775"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/standardwerte_fuer_fremdschluesselfelder_pflegen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Standardwerte f&uuml;r Fremdschl&uuml;sselfelder pflegen"}]},{"@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\/55001468","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=55001468"}],"version-history":[{"count":1,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001468\/revisions"}],"predecessor-version":[{"id":88075284,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001468\/revisions\/88075284"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001468"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001468"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}