{"id":55001444,"date":"2023-08-01T00:00:00","date_gmt":"2023-07-31T14:23:24","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1444"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Ungebundene_Daten_in_Uebersicht_und_Detailansicht","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\/","title":{"rendered":"Ungebundene Daten in &Uuml;bersicht und Detailansicht"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg08.met.vgwort.de\/na\/56a54cf933aa4e76ae098d509211bb6f\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_04\/pic_1444_001.png\" alt=\"Ausgangspunkt des Beitrags\" width=\"549,559\" height=\"273,4605\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Ausgangspunkt des Beitrags<\/span><\/b><\/p>\n<p><b>In den beiden Beitr&auml;gen &#8222;Daten in ungebundenen Formularen bearbeiten&#8220; (www.access-im-unternehmen.de\/1442) und &#8222;Ungebundene Listen und Kombis mit Daten f&uuml;llen&#8220; (www.access-im-unternehmen.de\/1440) haben wir M&ouml;glichkeiten aufgezeigt, um Daten ohne die Bindung an Tabellen oder Abfragen in Formularen und Steuerelementen anzuzeigen. In diesem Beitrag gehen wir einen Schritt weiter und kombinieren die beiden Darstellungen einer &Uuml;bersicht von Daten und der Detailansicht eines ausgew&auml;hlten Datensatzes. Dabei zeigen wir, wie wir in der &Uuml;bersicht einen Datensatz ausw&auml;hlen und diesen zum Bearbeiten &ouml;ffnen, einen neuen Datensatz anlegen oder Datens&auml;tze l&ouml;schen.<\/b><\/p>\n<p>Ausgangspunkt f&uuml;r das Beispiel zu diesem Beitrag sind die Formulare aus den oben genannten Beitr&auml;gen. Dabei wollen wir das Formular mit der &Uuml;bersicht der Kunden in einem Listenfeld, das wir in <b>frmKundenuebersicht <\/b>umbenannt haben, um einige Elemente erweitern (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_04\/pic_1444_001.png\" alt=\"Ausgangspunkt des Beitrags\" width=\"549,559\" height=\"273,4605\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Ausgangspunkt des Beitrags<\/span><\/b><\/p>\n<p>Wir haben die folgenden Erweiterungen vorgesehen:<\/p>\n<ul>\n<li>Hinzuf&uuml;gen einer Schaltfl&auml;che zum Anzeigen des aktuell ausgew&auml;hlten Eintrags im Detailformular <b>frmKundendetails <\/b>(ebenfalls ungebunden)<\/li>\n<li>Hinzuf&uuml;gen einer Funktion, mit welcher der entsprechende Datensatz per Doppelklick auf den jeweiligen Eintrag im Listenfeld angezeigt werden kann<\/li>\n<li>Hinzuf&uuml;gen einer Schaltfl&auml;che zum Anlegen eines neuen Datensatzes &uuml;ber das Formular <b>frmKundendetails<\/b><\/li>\n<li>Hinzuf&uuml;gen einer Schaltfl&auml;che zum L&ouml;schen des aktuell markierten Datensatzes aus der zugrunde liegenden Tabelle<\/li>\n<li>Programmieren von Funktionen, die daf&uuml;r sorgen, dass &Auml;nderungen an Datens&auml;tzen oder neu hinzugef&uuml;gte Datens&auml;tze nach dem Schlie&szlig;en des Formulars <b>frmKundendetails <\/b>direkt im Listenfeld widergespiegelt werden<\/li>\n<\/ul>\n<h2>Anlegen der Schaltfl&auml;chen<\/h2>\n<p>Bei der Gestaltung der Schaltfl&auml;chen haben wir neben den Beschriftungen auch noch Icons hinzuf&uuml;gt. Au&szlig;erdem haben wir die Einstellung <b>Vertikaler Anker <\/b>auf <b>Unten <\/b>eingestellt, damit diese, wenn das Formular und das Listenfeld vergr&ouml;&szlig;ert werden, ebenfalls nach unten verschoben werden (f&uuml;r das Listenfeld ist diese Einstellung auf den Wert <b>Beide <\/b>eingestellt). Die Schaltfl&auml;chen hei&szlig;en <b>cmdBearbeiten<\/b>, <b>cmdAnlegen <\/b>und <b>cmdLoeschen<\/b> (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_04\/pic_1444_002.png\" alt=\"Schaltfl&auml;chen f&uuml;r die Datenoperationen\" width=\"499,5589\" height=\"327,864\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Schaltfl&auml;chen f&uuml;r die Datenoperationen<\/span><\/b><\/p>\n<h2>Bearbeiten eines Datensatzes per Schaltlfl&auml;che<\/h2>\n<p>Um den aktuell im Listenfeld markierten Datensatz im Formular <b>frmKundendetails <\/b>anzuzeigen, verwenden wir die Schaltfl&auml;che <b>cmdBearbeiten <\/b>hinzu.<\/p>\n<p>F&uuml;r diese hinterlegen wir die folgende Prozedur:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdBearbeiten_Click()\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> IsNull(Me!lstKundenUngebunden)<span style=\"color:blue;\"> Then<\/span>\r\n         DoCmd.OpenForm \"frmKundendetails\", _\r\n             OpenArgs:=Me!lstKundenUngebunden, _\r\n             WindowMode:=acDialog\r\n     <span style=\"color:blue;\">Else<\/span>\r\n         <span style=\"color:blue;\">MsgBox<\/span> \"Bitte markieren Sie einen Datensatz.\", _\r\n             vbOKOnly + vbExclamation, _\r\n             \"Kein Datensatz markiert\"\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Diese Prozedur pr&uuml;ft, ob im Listenfeld &uuml;berhaupt ein Eintrag markiert ist. Falls ja, &ouml;ffnet sie das Formular <b>frmKundendetails <\/b>als modalen Dialog und &uuml;bergibt den Prim&auml;rschl&uuml;sselwert des markierten Eintrags mit dem Parameter <b>OpenArgs<\/b>.<\/p>\n<p>Ist aktuell kein Eintrag markiert, erscheint eine Meldung mit einem entsprechenden Hinweis.<\/p>\n<p>Im Formular <b>frmKundendetails <\/b>nimmt die Prozedur <b>Form_Open <\/b>das &Ouml;ffnungsargument &uuml;ber die Eigenschaft <b>OpenArgs <\/b>entgegen und zeigt die Daten des entsprechenden Datensatzes an. Die Details hierzu finden Sie im Beitrag <b>Daten in ungebundenen Formularen bearbeiten <\/b>(<b>www.access-im-unternehmen.de\/1442<\/b>).<\/p>\n<p>Nun wird es interessant: In gebundenen Formularen w&uuml;rden wir nun nach dem Bearbeiten des Datensatzes im Detailformular das Formular ausblenden, wodurch der Code im aufrufenden Formular fortgesetzt w&uuml;rde. Hier w&uuml;rden wir dann abfragen, ob das Detailformular noch ge&ouml;ffnet ist und gegebenenfalls auf die ge&auml;nderten Daten reagieren, bevor wir die Daten im aufrufenden Formular entsprechend anpassen. Dazu reicht dann meist ein Aufruf der Methode <b>Requery <\/b>der &Uuml;bersicht.<\/p>\n<p>Hier k&ouml;nnen wir &auml;hnlich vorgehen. Wir machen das Detailformular beim Anklicken der <b>OK<\/b>-Schaltfl&auml;che unsichtbar, damit wir im aufrufenden Formular feststellen k&ouml;nnen, ob der Benutzer die <b>OK<\/b>&#8211; oder die <b>Abbrechen<\/b>-Schaltfl&auml;che gedr&uuml;ckt hat (die <b>Abbrechen<\/b>-Schaltfl&auml;che w&uuml;rde das Formular direkt schlie&szlig;en).<\/p>\n<p>Den Code der <b>OK<\/b>-Schaltfl&auml;che passen wir dazu wie folgt an:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdOK_Click()\r\n     ...\r\n     Me.Visible = <span style=\"color:blue;\">False<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Im aufrufenden Formular k&ouml;nnen wir nun allerdings nicht die <b>Requery<\/b>-Methode des Listenfeldes aufrufen, da das Listenfeld nicht an eine Tabelle oder Abfrage gebunden ist, sondern anderweitig gef&uuml;llt wurde. An dieser Stelle haben wir nun zwei M&ouml;glichkeiten:<\/p>\n<ul>\n<li>Wir f&uuml;llen das Listenfeld erneut oder<\/li>\n<li>wir lesen nur den ge&auml;nderten Wert erneut ein.<\/li>\n<\/ul>\n<p>Die erste Variante ist schnell erledigt: Wir rufen einfach die Prozedur, welche die Daten in das Listenfeld einliest, erneut auf. Die Erweiterung sieht wie folgt aus:<\/p>\n<pre>...\r\n<span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> IsNull(Me!lstKundenUngebunden)<span style=\"color:blue;\"> Then<\/span>\r\n     DoCmd.OpenForm \"frmKundendetails\", _\r\n         OpenArgs:=Me!lstKundenUngebunden, _\r\n         WindowMode:=acDialog\r\n     <span style=\"color:blue;\">If <\/span>IstFormularGeoeffnet(\"frmKundendetails\")<span style=\"color:blue;\"> Then<\/span>\r\n         KundenEinlesen\r\n     <span style=\"color:blue;\">End If<\/span>\r\n...<\/pre>\n<p>Damit ist die Aufgabe prinzipiell erledigt. Wir rufen das Detailformular auf, nehmen eine &Auml;nderung vor, schlie&szlig;en das Detailformular und der Inhalt des Listenfeldes wird aktualisiert. In der aktuellen Fassung der Prozedur, welche die Daten der Tabelle <b>tblKunden <\/b>einliest und dem Listenfeld <b>lstKunden <\/b>hinzuf&uuml;gt, wird das Listenfeld allerdings vorher nicht geleert. Das bedeutet, dass die aktualisierten Daten durch die Aufrufe der <b>AddItem<\/b>-Methode an die bestehenden Daten angeh&auml;ngt werden. Um dies zu &auml;ndern, m&uuml;ssen wir das Listenfeld an irgendeiner Stelle leeren, was wir mit der folgenden Anweisung erledigen k&ouml;nnen:<\/p>\n<pre>Me!lstKundenUngebunden.RowSource = \"\"<\/pre>\n<p>[<\/p>\n<p>Diese k&ouml;nnen wir beispielsweise in der Prozedur <b>KundenEinlesen <\/b>vor der <b>Do While<\/b>-Schleife einf&uuml;gen. Allerdings gibt es noch eine Alternative.<\/p>\n<h2>Gezieltes Aktualisieren der Daten des Listenfeldes<\/h2>\n<p>Da wir ein ungebundenes Listenfeld nutzen und dieses mit der <b>AddItem<\/b>-Methode f&uuml;llen, k&ouml;nnen wir uns auch noch eine Alternative zum erneuten Laden aller Daten ansehen &#8211; denn je nach der Menge der Datens&auml;tze kann dieser Vorgang durchaus zu sichtbaren Verz&ouml;gerungen f&uuml;hren.<\/p>\n<p>Also erstellen wir eine Prozedur namens <b>KundeAktualisieren<\/b>, die wir von <b>cmdBearbeiten_Click <\/b>aus wie folgt aufrufen.<\/p>\n<p>Dabei &uuml;bergeben wir den Prim&auml;rschl&uuml;sselwert des ge&auml;nderten Datensatzes sowie seinen Index im Listenfeld, den wir mit der Eigenschaft <b>ListIndex <\/b>ermitteln:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdBearbeiten_Click()\r\n     ...\r\n         <span style=\"color:blue;\">If <\/span>IstFormularGeoeffnet(\"frmKundendetails\")<span style=\"color:blue;\"> Then<\/span>\r\n             KundeAktualisieren Me!lstKundenUngebunden, _\r\n                 Me!lstKundenUngebunden.ListIndex\r\n         <span style=\"color:blue;\">End If<\/span>\r\n     ...\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Die Prozedur <b>KundeAktualisieren <\/b>erstellt ein neues Recordset auf Basis der Tabelle <b>tblKunden <\/b>mit dem ge&auml;nderten Datensatz (siehe Listing 1). Ist dieses Recordset nicht leer, entfernt die Prozedur zuerst den vorhandenen Eintrag mit der <b>RemoveItem<\/b>-Methode. Den zu entfernenden Datensatz identifizieren wir mit dem Index aus <b>lngIndex<\/b>.<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>KundeAktualisieren(lngKundeID<span style=\"color:blue;\"> As Long<\/span>, lngIndex<span style=\"color:blue;\"> As Long<\/span>)\r\n     <span style=\"color:blue;\">Dim <\/span>db<span style=\"color:blue;\"> As <\/span>DAO.Database\r\n     <span style=\"color:blue;\">Dim <\/span>rst<span style=\"color:blue;\"> As <\/span>DAO.Recordset\r\n     <span style=\"color:blue;\">Set<\/span> db = CurrentDb\r\n     <span style=\"color:blue;\">Set<\/span> rst = db.OpenRecordset(\"SELECT * FROM tblKunden WHERE KundeID = \" & lngKundeID, dbOpenDynaset)\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> rst.EOF<span style=\"color:blue;\"> Then<\/span>\r\n         Me!lstKundenUngebunden.RemoveItem lngIndex\r\n         Me!lstKundenUngebunden.AddItem rst!KundeID & \";''\" & rst!Anrede & \"'';''\" & rst!Vorname & \"'';''\" & rst!Nachname _\r\n             & \"'';''\" & rst!Strasse & \"'';''\" & rst!PLZ & \"'';''\" & rst!Ort & \"'';''\" & rst!Land & \"''\", lngIndex\r\n     <span style=\"color:blue;\">End If<\/span>\r\n     rst.Close\r\n     <span style=\"color:blue;\">Set<\/span> rst = Nothing\r\n     <span style=\"color:blue;\">Set<\/span> db = Nothing\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Aktualisieren eines Listenfeldeintrags mit RemoveItem und AddItem<\/span><\/b><\/p>\n<p>Dann f&uuml;gen wir mit der <b>AddItem<\/b>-Methode den ge&auml;nderten Eintrag hinzu. Damit dieser nicht einfach hinten angeh&auml;ngt wird, geben wir als zweiten Parameter wieder den Index aus <b>lngIndex <\/b>an.<\/p>\n<p>Damit geschieht das Aktualisieren des ge&auml;nderten Eintrags im Listenfeld wesentlich schneller.<\/p>\n<h2>Bearbeiten eines Datensatzes per Doppelklick<\/h2>\n<p>Wesentlich einfacher als das Markieren des zu bearbeitenden Datensatzes und das anschlie&szlig;ende Bet&auml;tigen der <b>Bearbeiten<\/b>-Schaltfl&auml;che ist ein Doppelklick auf den Eintrag im Listenfeld.<\/p>\n<p>Das soll den gleichen Code ausl&ouml;sen, den wir bereits f&uuml;r das Ereignis <b>cmdBearbeiten_Click <\/b>hinterlegt haben. Wir haben nun zwei M&ouml;glichkeiten: Wir k&ouml;nnen auch von der Prozedur <b>lstKundenUngebunden_DblClick <\/b>die Prozedur <b>cmdBearbeiten_Click <\/b>aufrufen. Das sieht aber etwas unsch&ouml;n aus, also lagern wir die Anweisungen der Prozedur <b>cmdBearbeiten_Click <\/b>in eine neue Prozedur namens <b>KundeBearbeiten <\/b>aus und rufen diese dann aus den beiden genannten Prozeduren heraus auf:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdBearbeiten_Click()\r\n     KundeBearbeiten\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>lstKundenUngebunden_DblClick(Cancel<span style=\"color:blue;\"> As Integer<\/span>)\r\n     KundeBearbeiten\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Anlegen eines neuen Datensatzes per Schaltfl&auml;che<\/h2>\n<p>Noch spannender wird das Anlegen eines neuen Datensatzes. Die eigentliche Technik zum Anlegen haben wir zwar bereits im Beitrag <b>Daten in ungebundenen Formularen bearbeiten <\/b>(<b>www.access-im-unternehmen.de\/1442<\/b>) beschrieben. Der interessante Teil ist jetzt, wie wir den neuen Datensatz im Listenfeld anzeigen. Doch eins nach dem anderen.<\/p>\n<p>Die Funktion zum Anlegen eines neuen Datensatzes hinterlegen wir f&uuml;r das Ereignis <b>Beim Klicken <\/b>der Schaltfl&auml;che <b>cmdAnlegen<\/b>. Die erste Anweisung ist offensichtlich:<\/p>\n<pre>DoCmd.OpenForm \"frmKundendetails\", WindowMode:=acDialog<\/pre>\n<p>Wir &ouml;ffnen das Formular als modalen Dialog und &uuml;bergeben diesmal keine vorhandene Kunden-ID, da wir einen neuen Datensatz anlegen wollen.<\/p>\n<p>Dies ber&uuml;cksichtigen wir im aufgerufenen Formular <b>frmKundendetails <\/b>bereits in der <b>Form_Open<\/b>-Prozedur. Wenn wir kein &Ouml;ffnungsargument &uuml;bergeben, geschieht hier n&auml;mlich nichts &#8211; au&szlig;er, dass wir pr&uuml;fen, ob ein &Ouml;ffnungsargument &uuml;bergeben wurde:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Form_Open(Cancel<span style=\"color:blue;\"> As Integer<\/span>)\r\n     <span style=\"color:blue;\">Dim <\/span>db<span style=\"color:blue;\"> As <\/span>DAO.Database\r\n     <span style=\"color:blue;\">Dim <\/span>rst<span style=\"color:blue;\"> As <\/span>DAO.Recordset\r\n     lngKundeID = Nz(Me.OpenArgs, 0)\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> lngKundeID = 0<span style=\"color:blue;\"> Then<\/span>\r\n         ...\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Der Benutzer gibt dann die Daten des neuen Kunden ein und best&auml;tigt die Eingabe mit der <b>OK<\/b>-Schaltfl&auml;che. Diese ist bereits mit den Anweisungen ausgestattet, um die Daten des neuen Datensatzes in der Tabelle <b>tblKunden <\/b>zu speichern. Au&szlig;erdem blendet sie das Formular aus, damit dieses den Fokus verliert und der aufrufende Code weiterlaufen kann.<\/p>\n<p>In der Prozedur <b>cmdAnlegen_Click<\/b> k&ouml;nnen wir nun entscheiden, wie der neue Datensatz verarbeitet werden soll. Wenn wir mit herk&ouml;mmlichen gebundenen Elementen arbeiten, werden neue Eintr&auml;ge nach dem Aktualisieren je nach der Reihenfolge einsortiert (siehe Listing 2).<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdAnlegen_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>lngKundeID<span style=\"color:blue;\"> As Long<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>db<span style=\"color:blue;\"> As <\/span>DAO.Database\r\n     <span style=\"color:blue;\">Dim <\/span>rst<span style=\"color:blue;\"> As <\/span>DAO.Recordset\r\n     DoCmd.OpenForm \"frmKundendetails\", WindowMode:=acDialog\r\n     <span style=\"color:blue;\">If <\/span>IstFormularGeoeffnet(\"frmKundendetails\")<span style=\"color:blue;\"> Then<\/span>\r\n         lngKundeID = Forms!frmKundendetails!KundeID\r\n         <span style=\"color:blue;\">Set<\/span> db = CurrentDb\r\n         <span style=\"color:blue;\">Set<\/span> rst = db.OpenRecordset(\"SELECT * FROM tblKunden WHERE KundeID = \" & lngKundeID, dbOpenDynaset)\r\n         <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> rst.EOF<span style=\"color:blue;\"> Then<\/span>\r\n             Me!lstKundenUngebunden.AddItem rst!KundeID & \";''\" & rst!Anrede & \"'';''\" & rst!Vorname & \"'';''\" _\r\n                 & rst!Nachname & \"'';''\" & rst!Strasse & \"'';''\" & rst!PLZ & \"'';''\" & rst!Ort & \"'';''\" & rst!Land & \"''\"\r\n         <span style=\"color:blue;\">End If<\/span>\r\n         rst.Close\r\n         <span style=\"color:blue;\">Set<\/span> rst = Nothing\r\n         <span style=\"color:blue;\">Set<\/span> db = Nothing\r\n         DoCmd.Close acForm, \"frmKundendetails\"\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: Hinzuf&uuml;gen eines Listenfeldeintrags f&uuml;r einen neu hinzugef&uuml;gten Datensatz<\/span><\/b><\/p>\n<p>Wir schauen uns zuerst jedoch die scheinbar einfachere L&ouml;sung an, bei welcher der neue Eintrag einfach unten angef&uuml;gt wird. Bei dieser pr&uuml;fen wir nach dem Ausblenden oder Schlie&szlig;en des Detailformulars, ob dieses noch ge&ouml;ffnet ist. Nun m&uuml;ssen wir herausfinden, welche ID der neue Datensatz hat. &Uuml;ber das Formular <b>frmKundendetails <\/b>finden wir es nicht heraus, denn das Feld <b>KundeID <\/b>wird nicht wie bei gebundenen Formularen gef&uuml;llt, wenn wir einen neuen Datensatz anlegen. Die einfachste Variante w&auml;re, wenn wir dies noch hinzuprogrammieren, und zwar f&uuml;r das Ereignis, dass durch die Schaltfl&auml;che <b>cmdOK <\/b>ausgel&ouml;st wird. Hier pr&uuml;fen wir vor dem Speichern des Datensatzes mit der <b>Update<\/b>-Methode, ob <b>lngKundeID <\/b>den Wert <b>0 <\/b>aufweist, also ob wir einen neuen Datnesatz anlegen. Ist das der Fall, schreiben wir den Wert von <b>rst!KundeID<\/b>, welcher zu diesem Zeitpunkt bereits durch die Autowert-Funktion gesetzt wurde, in das Textfeld <b>KundID<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdOK_Click()\r\n     ...\r\n     rst!Land = Me!Land\r\n     <span style=\"color:blue;\">If <\/span>lngKundeID = 0<span style=\"color:blue;\"> Then<\/span>\r\n         Me!KundeID = rst!KundeID\r\n     <span style=\"color:blue;\">End If<\/span>\r\n     rst.Update\r\n     ...\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Der Zeitpunkt vor dem Aufruf der <b>Update<\/b>-Methode ist wichtig, da nach dem Aufruf der Datensatzzeiger auf einen anderen (&uuml;blicherweise einen neuen) Datensatz verschoben wird.<\/p>\n<p>Damit k&ouml;nnen wir nun von der aufrufenden Prozedur aus auf den Wert des Textfeldes <b>KundeID <\/b>zugreifen und den entsprechenden Datensatz unten an die Liste anf&uuml;gen. Dabei lesen wir die ID aus dem Feld <b>KundeID <\/b>ein und erstellen ein neues Recordset auf Basis der Tabelle <b>tblKunden<\/b>, welches nur den Datensatz mit dem neuen Kunden enth&auml;lt. Dann f&uuml;gen wir das neue Element mit der <b>AddItem<\/b>-Methode zum Listenfeld hinzu und schlie&szlig;en das Formular <b>frmKundendetails<\/b>, das aktuell noch unsichtbar ge&ouml;ffnet ist.<\/p>\n<h2>Einsortieren neuer Datens&auml;tze entsprechend der Sortierung<\/h2>\n<p>Aktuell haben wir noch keine M&ouml;glichkeit vorgesehen, die Daten in dem Listenfeld nach bestimmten Kriterien zu sortieren oder zu filtern. Dies f&uuml;gen wir in einem weiteren Beitrag hinzu, wo wir dann auch die Routine zum Einf&uuml;gen neuer Datens&auml;tze entsprechend der aktuellen Sortierung anpassen &#8211; siehe <b>Ungebundenes Listenfeld sortieren und filtern <\/b>(<b>www.access-im-unternehmen.de\/1445<\/b>).<\/p>\n<h2>L&ouml;schen eines Datensatzes per Mausklick<\/h2>\n<p>Das L&ouml;schen des aktuell markierten Datensatzes im Listenfeld erledigen wir mit der Schaltfl&auml;che <b>cmdLoeschen<\/b>, welche die Prozedur aus Listing 3 ausl&ouml;st. Diese Prozedur schreibt den Wert der gebundenen Spalte f&uuml;r den aktuell markierten Eintrag in die Variable <b>lngKundeID<\/b>. Ist aktuell kein Eintrag markiert, landet dort der Wert <b>0<\/b>. Ist <b>lngKundeID <\/b>danach nicht gleich <b>0<\/b>, entfernt die Prozedur zuerst den Eintrag mit dem Indexwert aus der Eigenschaft <b>ListIndex <\/b>aus dem Listenfeld. Au&szlig;erdem l&ouml;scht sie den betroffenen Datensatz aus der Tabelle <b>tblKunden<\/b>.<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdLoeschen_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>db<span style=\"color:blue;\"> As <\/span>DAO.Database\r\n     <span style=\"color:blue;\">Dim <\/span>lngKundeID<span style=\"color:blue;\"> As Long<\/span>\r\n     lngKundeID = Nz(Me!lstKundenUngebunden, 0)\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> lngKundeID = 0<span style=\"color:blue;\"> Then<\/span>\r\n         <span style=\"color:blue;\">Set<\/span> db = CurrentDb\r\n         Me!lstKundenUngebunden.RemoveItem Me!lstKundenUngebunden.ListIndex\r\n         db.Execute \"DELETE FROM tblKunden WHERE KundeID = \" & lngKundeID, dbFailOnError\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 3: L&ouml;schen eines Datensatzes<\/span><\/b><\/p>\n<p>Danach springt das Listenfeld zum ersten Datensatz. Da das Listenfeld keine M&ouml;glichkeit bietet, die aktuelle Position der Bildlaufleiste zu ermitteln, machen wir uns an dieser Stelle nicht die M&uuml;he, die Position vor dem L&ouml;schen eines Eintrags wiederherzustellen.<\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Dieser Beitrag zeigt, wie wir eine gebundene Datenblatt- oder Endlosansicht durch ein ungebundenes Listenfeld ersetzen k&ouml;nnen. Wir haben Funktionen hinzugef&uuml;gt, mit denen wir vorhandene und in der Liste angezeigte Datens&auml;tze bearbeiten und die &Auml;nderungen direkt in die Liste &uuml;bernehmen k&ouml;nnen. Das Bearbeiten erfolgt durch Markieren und Bet&auml;tigen einer Schaltfl&auml;che oder per Doppelklick und anschlie&szlig;endes Anzeigen des Datensatzes in einem ebenfalls ungebundenen Detailformular.<\/p>\n<p>Dieses Detailformular k&ouml;nnen wir auch nutzen, um einen neuen Datensatz anzulegen, der anschlie&szlig;end zum Listenfeld hinzugef&uuml;gt wird.<\/p>\n<p>Mit einer weiteren Schaltfl&auml;che k&ouml;nnen wir Eintr&auml;ge aus dem Listenfeld l&ouml;schen.<\/p>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>UngebundeneDatenInUebersichtUndDetailansicht.accdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/51617769-EC2B-468C-98BF-FE661DD1764D\/aiu_1444.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In den beiden Beitr&auml;gen &#8222;Daten in ungebundenen Formularen bearbeiten&#8220; (www.access-im-unternehmen.de\/1442) und &#8222;Ungebundene Listen und Kombis mit Daten f&uuml;llen&#8220; (www.access-im-unternehmen.de\/1440) haben wir M&ouml;glichkeiten aufgezeigt, um Daten ohne die Bindung an Tabellen oder Abfragen in Formularen und Steuerelementen anzuzeigen. In diesem Beitrag gehen wir einen Schritt weiter und kombinieren die beiden Darstellungen einer &Uuml;bersicht von Daten und der Detailansicht eines ausgew&auml;hlten Datensatzes. Dabei zeigen wir, wie wir in der &Uuml;bersicht einen Datensatz ausw&auml;hlen und diesen zum Bearbeiten &ouml;ffnen, einen neuen Datensatz anlegen oder Datens&auml;tze l&ouml;schen.<\/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":[662023,66042023,44000023],"tags":[],"class_list":["post-55001444","post","type-post","status-publish","format-standard","hentry","category-662023","category-66042023","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>Ungebundene Daten in &Uuml;bersicht und Detailansicht - 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\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ungebundene Daten in &Uuml;bersicht und Detailansicht\" \/>\n<meta property=\"og:description\" content=\"In den beiden Beitr&auml;gen &quot;Daten in ungebundenen Formularen bearbeiten&quot; (www.access-im-unternehmen.de\/1442) und &quot;Ungebundene Listen und Kombis mit Daten f&uuml;llen&quot; (www.access-im-unternehmen.de\/1440) haben wir M&ouml;glichkeiten aufgezeigt, um Daten ohne die Bindung an Tabellen oder Abfragen in Formularen und Steuerelementen anzuzeigen. In diesem Beitrag gehen wir einen Schritt weiter und kombinieren die beiden Darstellungen einer &Uuml;bersicht von Daten und der Detailansicht eines ausgew&auml;hlten Datensatzes. Dabei zeigen wir, wie wir in der &Uuml;bersicht einen Datensatz ausw&auml;hlen und diesen zum Bearbeiten &ouml;ffnen, einen neuen Datensatz anlegen oder Datens&auml;tze l&ouml;schen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-31T14:23:24+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\\\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Ungebundene Daten in &Uuml;bersicht und Detailansicht\",\"datePublished\":\"2023-07-31T14:23:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\\\/\"},\"wordCount\":2050,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/56a54cf933aa4e76ae098d509211bb6f\",\"articleSection\":[\"2023\",\"4\\\/2023\",\"Mit Formularen arbeiten\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\\\/\",\"name\":\"Ungebundene Daten in &Uuml;bersicht und Detailansicht - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/56a54cf933aa4e76ae098d509211bb6f\",\"datePublished\":\"2023-07-31T14:23:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/56a54cf933aa4e76ae098d509211bb6f\",\"contentUrl\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/56a54cf933aa4e76ae098d509211bb6f\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ungebundene Daten in &Uuml;bersicht und Detailansicht\"}]},{\"@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":"Ungebundene Daten in &Uuml;bersicht und Detailansicht - 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\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\/","og_locale":"de_DE","og_type":"article","og_title":"Ungebundene Daten in &Uuml;bersicht und Detailansicht","og_description":"In den beiden Beitr&auml;gen \"Daten in ungebundenen Formularen bearbeiten\" (www.access-im-unternehmen.de\/1442) und \"Ungebundene Listen und Kombis mit Daten f&uuml;llen\" (www.access-im-unternehmen.de\/1440) haben wir M&ouml;glichkeiten aufgezeigt, um Daten ohne die Bindung an Tabellen oder Abfragen in Formularen und Steuerelementen anzuzeigen. In diesem Beitrag gehen wir einen Schritt weiter und kombinieren die beiden Darstellungen einer &Uuml;bersicht von Daten und der Detailansicht eines ausgew&auml;hlten Datensatzes. Dabei zeigen wir, wie wir in der &Uuml;bersicht einen Datensatz ausw&auml;hlen und diesen zum Bearbeiten &ouml;ffnen, einen neuen Datensatz anlegen oder Datens&auml;tze l&ouml;schen.","og_url":"https:\/\/access-im-unternehmen.de\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\/","og_site_name":"Access im Unternehmen","article_published_time":"2023-07-31T14:23:24+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\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Ungebundene Daten in &Uuml;bersicht und Detailansicht","datePublished":"2023-07-31T14:23:24+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\/"},"wordCount":2050,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\/#primaryimage"},"thumbnailUrl":"http:\/\/vg08.met.vgwort.de\/na\/56a54cf933aa4e76ae098d509211bb6f","articleSection":["2023","4\/2023","Mit Formularen arbeiten"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\/","url":"https:\/\/access-im-unternehmen.de\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\/","name":"Ungebundene Daten in &Uuml;bersicht und Detailansicht - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\/#primaryimage"},"thumbnailUrl":"http:\/\/vg08.met.vgwort.de\/na\/56a54cf933aa4e76ae098d509211bb6f","datePublished":"2023-07-31T14:23:24+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\/#primaryimage","url":"http:\/\/vg08.met.vgwort.de\/na\/56a54cf933aa4e76ae098d509211bb6f","contentUrl":"http:\/\/vg08.met.vgwort.de\/na\/56a54cf933aa4e76ae098d509211bb6f"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Ungebundene_Daten_in_Uebersicht_und_Detailansicht\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Ungebundene Daten in &Uuml;bersicht und Detailansicht"}]},{"@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\/55001444","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=55001444"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001444\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001444"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001444"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}