{"id":55001548,"date":"2025-06-01T00:00:00","date_gmt":"2025-05-07T12:03:51","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1548"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Markierte_Datensaetze_aus_dem_Datenblatt_einlesen","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\/","title":{"rendered":"Markierte Datens&auml;tze aus dem Datenblatt einlesen"},"content":{"rendered":"<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_03\/pic_1548_002.png\" alt=\"Selektieren eines einzelnen Feldes\" width=\"649,559\" height=\"418,7318\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Selektieren eines einzelnen Feldes<\/span><\/b><\/p>\n<p><b>Die Datenblattansicht ist sehr hilfreich, wenn man die Daten aus Tabellen oder Abfragen in tabellarischer Form darstellen m&ouml;chte. Sie bietet au&szlig;erdem Funktionen zum Anpassen der Spalten, der Sortierung und auch der Filter. Zus&auml;tzlich k&ouml;nnen wir damit nicht nur einen Datensatz markieren, sondern gleich mehrere. Wir erhalten zwar nicht den Komfort wie im Listenfeld, wo wir nicht nur zusammenh&auml;ngende, sondern auch einzelne Eintr&auml;ge selektieren k&ouml;nnen, aber immerhin ist es grunds&auml;tzlich m&ouml;glich, bei gedr&uuml;ckter Maustaste mehr als einen Eintrag auszuw&auml;hlen. Die Frage ist nur: Was machen wir mit diesem selektierten Bereich? Das Listenfeld bietet eigene Eigenschaften, mit denen wir auf die markierten Elemente zugreifen k&ouml;nnen. Das ist in der Datenblattansicht nicht der Fall. Das soll uns jedoch nicht davon abhalten, die gew&uuml;nschten Daten weiterzuverarbeiten.<\/b><\/p>\n<p>Wenn wir uns eine Datenblattansicht wie in Bild 1 ansehen, k&ouml;nnen wir verschiedene Arten von Selektionen durchf&uuml;hren. Die einfachste Selektion ist, in ein Feld zu klicken. Dies f&uuml;gt an der Stelle des Klicks die Einf&uuml;gemarke ein. Den Wert dieses Feldes k&ouml;nnen wir beispielsweise vom Direktbereich des VBA-Editors aus mit dem folgenden Ausdruck ermitteln:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_03\/pic_1548_002.png\" alt=\"Selektieren eines einzelnen Feldes\" width=\"649,559\" height=\"418,7318\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Selektieren eines einzelnen Feldes<\/span><\/b><\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> Screen.ActiveControl.Value\r\n   Knuth<\/pre>\n<p>Wir k&ouml;nnen auch den Namen des aktuellen Steuerelements abrufen:<\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> Screen.ActiveControl.Name\r\n   txtVorname<\/pre>\n<h2>Werte der anderen Felder des markierten Datensatzes auslesen<\/h2>\n<p>Auch wenn sich die Einf&uuml;gemarke nur in einem Feld befindet, so wird doch der vollst&auml;ndige Datensatz markiert.<\/p>\n<p>Aus dem Direktbereich heraus k&ouml;nnen wir wie folgt auf einen Wert eines anderen Steuerelements dieses Datensatzes zugreifen und diesen beispielsweise dort ausgeben:<\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> Screen.ActiveForm!sfmMitarbeiterUebersicht!MitarbeiterID\r\n  8 <\/pre>\n<p>Direkt vom Klassenmodul des Unterformulars <b>sfmMitarbeiterUebersicht <\/b>greifen wir noch einfacher auf diesen Wert zu:<\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> Me!MitarbeiterID<\/pre>\n<p>Auf die gleiche Weise k&ouml;nnen wir auch auf die Inhalte der &uuml;brigen Felder per Feldname oder Steuerelementname zugreifen.<\/p>\n<h2>Markieren eines kompletten Datensatzes<\/h2>\n<p>Auch wenn das Anklicken eines einzigen Feldes bereits die gesamte Zeile markiert hat, gibt es noch eine weitere Abstufung. Wenn wir auf den grauen Bereich links vom Datensatz klicken, den sogenannten Datensatzmarkierer, markieren wir den vollst&auml;ndigen Datensatz (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_03\/pic_1548_003.png\" alt=\"Markieren eines vollst&auml;ndigen Datensatzes\" width=\"649,559\" height=\"246,5479\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Markieren eines vollst&auml;ndigen Datensatzes<\/span><\/b><\/p>\n<p>Der Unterschied ist, dass nun kein einzelnes Steuerelement mehr die Einf&uuml;gemarke anzeigt, sondern alle Felder markiert und von einem Rahmen umgeben werden.<\/p>\n<p><b>Screen.ActiveControl.Name <\/b>liefert nun den Namen des ersten sichtbaren Steuerelements der Zeile.<\/p>\n<p>Wenn wir auf die Daten des aktuell markierten Datensatzes zugreifen wollen, k&ouml;nnen wir einfach die einzelnen Steuerelemente auslesen- diese liefern die Werte f&uuml;r den aktuellen Datensatz.<\/p>\n<h2>Markieren mehrerer Datens&auml;tze<\/h2>\n<p>Damit kommen wir zum Kern des Beitrags, dem Markieren zweier oder mehrerer zusammenh&auml;ngender Datens&auml;tze gleichzeitig. Das gelingt beispielsweise auf die folgenden Arten:<\/p>\n<ul>\n<li>mit der Maus durch Markieren des Datensatzmarkierers des obersten oder untersten zu markieren Datensatzes und Ziehen bis zum Datensatzmarkierer am anderen Ende der Markierung,<\/li>\n<li>durch Anklicken des Datensatzmarkierers des ersten zu markierenden Datensatzes und Anklicken des Datensatzmarkierers eines anderen Datensatzes bei gedr&uuml;ckter Umschalttaste oder<\/li>\n<li>durch Anklicken des Datensatzmarkierers des ersten zu markierenden Datensatzes und Erweitern der Markierung mit den Tastenkombinationen <b>Umschalt + Nach oben <\/b>oder <b>Umschalt + Nach unten<\/b>.<\/li>\n<\/ul>\n<p>Wir klicken mit der Maus auf den Datensatzmarkierer des obersten oder untersten zu markierenden Datensatzes und ziehen die Maus bei gedr&uuml;ckter Maustaste nach oben oder unten, je nachdem in welche Richtung wir die Markierung erweitern wollen.<\/p>\n<p>Ein Datenblatt mit mehreren markierten Datens&auml;tzen sehen wir in Bild 3.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_03\/pic_1548_001.png\" alt=\"Markieren mehrerer Datens&auml;tze in der Datenblattansicht\" width=\"649,559\" height=\"418,7318\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Markieren mehrerer Datens&auml;tze in der Datenblattansicht<\/span><\/b><\/p>\n<p>Der folgende Ausdruck liefert nun den Wert des linken, oberen Feldes des Datensatzes, der als Erstes markiert wurde:<\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> Screen.ActiveControl.Value<\/pre>\n<p>Sollten wir also einen Datensatz markieren und die Markierung nach unten erweitern, werden die Daten des obersten Datensatzes geliefert. Wenn wir die Markierung nach oben ziehen, erhalten wir die Daten des untersten Datensatzes der Markierung.<\/p>\n<p>Wenn wir wie folgt gezielt auf ein Steuerelement zugreifen wollen, erhalten wir ebenfalls die Werte der Steuerelemente der Zeile der Markierung, die als erste selektiert wurde:<\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> Forms!frmMitarbeiterUebersicht!sfmMitarbeiterUebersicht!Vorname<\/pre>\n<h2>Auslesen aller Zeilen der Markierung<\/h2>\n<p>Die eingebauten Werkzeuge zum Auslesen der Markierung sind zwar gegeben, allerdings kommen wir nicht ohne Weiteres an die in den markierten Zeilen enthaltenen Daten heran.<\/p>\n<p>Die Markierung jedoch k&ouml;nnen wir mit den folgenden Eigenschaften auslesen:<\/p>\n<ul>\n<li><b>SelLeft<\/b>: Index der linken Spalte der Selektion inklusive der ausgeblendeten Spalten, beginnt immer mit dem Wert 2<\/li>\n<li><b>SelTop<\/b>: Index der obersten Spalte der Selektion<\/li>\n<li><b>SelWidth<\/b>: Anzahl der Spalten der Selektion, inklusive der ausgeblendeten<\/li>\n<li><b>SelHeight<\/b>: Anzahl der Zeilen der Selektion<\/li>\n<\/ul>\n<p>Diese Daten lassen wir uns mit der folgenden Prozedur f&uuml;r das im Formular <b>frmMitarbeiterUebersicht <\/b>enthaltene Unterformular <b>sfmMitarbeiterUebersicht <\/b>ausgeben:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>MarkierungErfassen()\r\n     <span style=\"color:blue;\">Dim <\/span>sfm<span style=\"color:blue;\"> As <\/span>Form\r\n     <span style=\"color:blue;\">Set<\/span> sfm = Forms!frmMitarbeiterUebersicht! sfmMitarbeiterUebersicht.Form\r\n     <span style=\"color:blue;\">With<\/span> sfm\r\n         <span style=\"color:blue;\">Debug.Print<\/span> \"SelLeft:   \" & .SelLeft\r\n         <span style=\"color:blue;\">Debug.Print<\/span> \"SelTop:    \" & .SelTop\r\n         <span style=\"color:blue;\">Debug.Print<\/span> \"SelWidth:  \" & .SelWidth\r\n         <span style=\"color:blue;\">Debug.Print<\/span> \"SelHeight: \" & .SelHeight\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>In Bild 4 sehen wir die beispielhafte Ausgabe dieser Werte f&uuml;r die angezeigte Markierung. <b>SelLeft<\/b> liefert unerwarteterweise den Wert 2, obwohl bereits die erste Spalte markiert ist. Die Werte f&uuml;r die anderen Eigenschaften sind nachvollziehbar.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_03\/pic_1548_004.png\" alt=\"Ausgabe der Selektion in Zahlen\" width=\"599,559\" height=\"348,0452\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Ausgabe der Selektion in Zahlen<\/span><\/b><\/p>\n<h2>Auslesen der Daten der Selektion<\/h2>\n<p>Wir wollen nun die Prim&auml;rschl&uuml;sselwerte der selektierten Zeilen ermitteln.<\/p>\n<p>Wie oben erw&auml;hnt, gelingt uns das durch Referenzieren des Feldes <b>MitarbeiterID <\/b>nur f&uuml;r den ersten Datensatz der Selektion &#8211; und hier erscheint auch noch der Wert des Datensatzes, mit dem die Markierung gestartet wurde.<\/p>\n<p>Im Beispiel w&auml;re das, wenn wir die Markierung ausgehend von der oberen Zeile aus angelegt h&auml;tten, der Wert <b>6<\/b>. Wenn wir die Markierung jedoch unten begonnen h&auml;tten, w&uuml;rde <b>sfm!MitarbeiterID <\/b>den Wert <b>9 <\/b>liefern.<\/p>\n<p>Wie kommen wir nun an die <b>MitarbeiterID<\/b>-Werte der markierten Datens&auml;tze heran? Hier nutzen wir eine Kombination aus den zuvor ermittelten Koordinaten f&uuml;r die Markierung und dem <b>RecordsetClone<\/b>-Objekt.<\/p>\n<p>Mit dem <b>RecordsetClone<\/b>-Objekt eines Recordsets, in diesem Fall des zu untersuchenden Formulars, erstellen wir einen Klon des Recordsets. Es ist kein Verweis auf das bestehende Recordset, sondern eine eigene Kopie.<\/p>\n<p>In dieser k&ouml;nnen wir verschiedene Dinge tun, zum Beispiel darin navigieren. Die Idee ist, dass wir das <b>RecordsetClone<\/b>-Objekt nutzen, um darin zun&auml;chst die Position der ersten Zeile der Markierung einzunehmen und dann durch die Anzahl der markierten Zeilen zu navigieren und die jeweiligen Prim&auml;rschl&uuml;sselwerte zu ermitteln.<\/p>\n<p>Der Code sieht wie in Listing 1 aus.<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>DatenDerMarkierungErmitteln()\r\n     <span style=\"color:blue;\">Dim <\/span>sfm<span style=\"color:blue;\"> As <\/span>Form\r\n     <span style=\"color:blue;\">Dim <\/span>rstClone<span style=\"color:blue;\"> As <\/span>DAO.Recordset\r\n     <span style=\"color:blue;\">Dim <\/span>i<span style=\"color:blue;\"> As Long<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>lngSelTop<span style=\"color:blue;\"> As Long<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>lngSelHeight<span style=\"color:blue;\"> As Long<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>lngCount<span style=\"color:blue;\"> As Long<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>arrBookmarks()<span style=\"color:blue;\"> As Variant<\/span>\r\n     <span style=\"color:blue;\">Set<\/span> sfm = Forms!frmMitarbeiterUebersicht!sfmMitarbeiterUebersicht.Form\r\n     <span style=\"color:blue;\">Set<\/span> rstClone = sfm.RecordsetClone\r\n     lngSelTop = sfm.SelTop\r\n     lngSelHeight = sfm.SelHeight\r\n     <span style=\"color:blue;\">If <\/span>lngSelHeight &gt; 0<span style=\"color:blue;\"> Then<\/span>\r\n         ReDim arrBookmarks(1 To lngSelHeight)\r\n         rstClone.MoveFirst\r\n         For i = 1 To lngSelTop - 1\r\n             rstClone.Move<span style=\"color:blue;\">Next<\/span>\r\n         <span style=\"color:blue;\">Next<\/span> i\r\n         lngCount = lngSelHeight\r\n         \r\n         For i = 1 To lngSelHeight\r\n             <span style=\"color:blue;\">If <\/span>rstClone.AbsolutePosition = -1<span style=\"color:blue;\"> Then<\/span>\r\n                 lngCount = lngSelHeight - 1\r\n                 <span style=\"color:blue;\">Exit For<\/span>\r\n             <span style=\"color:blue;\">End If<\/span>\r\n             arrBookmarks(i) = rstClone.Bookmark\r\n             rstClone.Move<span style=\"color:blue;\">Next<\/span>\r\n         <span style=\"color:blue;\">Next<\/span> i\r\n         For i = 1 To lngCount\r\n             rstClone.Bookmark = arrBookmarks(i)\r\n             <span style=\"color:blue;\">Debug.Print<\/span> \"ID: \" & rstClone!MitarbeiterID\r\n         <span style=\"color:blue;\">Next<\/span> i\r\n     <span style=\"color:blue;\">Else<\/span>\r\n         <span style=\"color:blue;\">MsgBox<\/span> \"Bitte mindestens einen Datensatz markieren.\"\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Anpassung der Prozedur f&uuml;r das Vergr&ouml;&szlig;ern und Verkleinern<\/span><\/b><\/p>\n<p>In der Prozedur deklarieren wir neben dem Formular-Objekt <b>sfm <\/b>(f&uuml;r das Unterformular) ein <b>Recordset<\/b>-Objekt f&uuml;r das <b>RecordsetClone<\/b>-Objekt sowie eine Laufvariable namens <b>i <\/b>und zwei Variablen zum Speichern der relevanten Markierungskoordinaten.<\/p>\n<p>Schlie&szlig;lich ben&ouml;tigen wir noch ein <b>Variant<\/b>-Array namens <b>arrBookmarks<\/b>, in dem wir Bookmarks der betroffenen Datens&auml;tze des <b>RecordsetClone<\/b>-Methode speichern.<\/p>\n<p>Die Prozedur referenziert das zu untersuchende Formular in der Datenblattansicht mit der Variablen <b>sfm<\/b>. Dann weist sie <b>rstClone <\/b>das <b>RecordsetClone<\/b>-Objekt des Formulars zu.<\/p>\n<p>Die folgenden Anweisungen speichern den Index der ersten Zeile und die H&ouml;he des selektierten Bereichs in den Variablen <b>lngSelTop <\/b>und <b>lngSelHeight<\/b>.<\/p>\n<p>Wenn <b>lngSelHeight <\/b>gr&ouml;&szlig;er ist als <b>0<\/b>, was Voraussetzung f&uuml;r das Auslesen von Markierungen ist, dimensionieren wir das Array f&uuml;r die Bookmarks von <b>1 <\/b>bis zur Anzahl der Zeilen aus <b>lngSelHeight<\/b>.<\/p>\n<p>Im <b>RecordsetClone <\/b>springen wir auf den ersten Datensatz und bewegen uns in einer ersten Schleife solange weiter, bis wir zum ersten markierten Datensatz gelangen.<\/p>\n<p>In einer zweiten Schleife springen wir mit <b>MoveNext <\/b>solange jeweils einen Datensatz weiter, bis wir die Anzahl aus <b>lngSelHeight<\/b>, also die H&ouml;he der Markierung, erreicht haben.<\/p>\n<p>Dies geschieht normalerweise erfolgreich in einer einfachen <b>For&#8230;Next<\/b>-Schleife von <b>1 <\/b>bis zum Wert <b>lngSelHeight<\/b>. Wenn wir jedoch beispielsweise mit <b>Strg + A <\/b>alle Datens&auml;tze markieren, liefert <b>SelHeight<\/b> einen falschen Wert, der um 1 gr&ouml;&szlig;er ist als der tats&auml;chliche Wert.<\/p>\n<p>Woran liegt das? Das sehen wir in Bild 5, wo wir einmal alle Datens&auml;tze markiert und dann ganz nach unten gescrollt haben.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_03\/pic_1548_005.png\" alt=\"Auch der neue, leere Datensatz ist Teil der Selektion.\" width=\"624,559\" height=\"418,2068\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Auch der neue, leere Datensatz ist Teil der Selektion.<\/span><\/b><\/p>\n<p>Hier sehen wir, dass auch der neue, leere Datensatz markiert wird, was zum &uuml;berz&auml;hligen Eintrag f&uuml;hrt.<\/p>\n<p>Es kann auch sein, dass wir nicht alle Datens&auml;tze markierten, sondern nur die letzten in der Datenblattansicht, und hier auch zuf&auml;llig den neuen, leeren Datensatz mit markieren.<\/p>\n<p>Wir m&uuml;ssen also auf irgendeine Art pr&uuml;fen, ob der neue, leere Datensatz erstens angezeigt wird und zweitens, ob dieser Teil der aktuellen Markierung ist.<\/p>\n<p>Dies umgehen wir, indem wir in der zweiten <b>For&#8230;Next<\/b>-Schleife, mit der wir die Bookmarks einlesen, zu Beginn pr&uuml;fen, ob die Eigenschaft <b>AbsolutePosition <\/b>den Wert <b>-1 <\/b>aufweist. Ist das der Fall, sind wir beim neuen, leeren Datensatz gelandet.<\/p>\n<p>In diesem Fall verlassen wir die Schleife und stellen die Anzahl der zu durchlaufenden Objekte f&uuml;r die folgende Schleife in der Variablen <b>lngCount <\/b>auf den aktuellen Wert von <b>lngSelHeight &#8211; 1 <\/b>ein.<\/p>\n<p>Den Wert von <b>lngCount <\/b>haben wir zuvor auf <b>lngSelHeight <\/b>eingestellt, dieser Wert wird beibehalten, wenn die neue, leere Zeile nicht von der Markierung ber&uuml;hrt wird.<\/p>\n<p>F&uuml;r alle markierten Zeilen au&szlig;er der neuen, leeren Zeile wird nun das Bookmark des aktuell durchlaufenen Datensatzes in <b>arrBookmarks(i) <\/b>gespeichert.<\/p>\n<p>Schlie&szlig;lich durchlaufen wir in einer dritten <b>For&#8230;Next<\/b>-Schleife alle Werte von <b>1 <\/b>bis <b>lngCount<\/b>.<\/p>\n<p>Hier stellen wir das Recordset wieder auf das aktuelle Bookmark des Arrays ein und k&ouml;nnen dann beispielsweise &uuml;ber <b>rstClone!MitarbeiterID <\/b>auf die Werte der einzelnen Felder der markierten Datens&auml;tze zugreifen.<\/p>\n<p>Damit geben wir im Beispiel alle Prim&auml;rschl&uuml;sselwerte im Direktbereich des VBA-Editors aus.<\/p>\n<h2>Problem: Datenblatt verliert den Fokus bei Mausklick<\/h2>\n<p>Ein Problem dieser L&ouml;sung tritt auf, wenn wir den Aufruf der Prozedur <b>DatenDerMarkierungErmitteln <\/b>beispielsweise wie folgt f&uuml;r die Ereignisprozedur einer Schaltfl&auml;che hinterlegen:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdPKWerteAuslesen_Click()\r\n     <span style=\"color:blue;\">Call<\/span> DatenDerMarkierungErmitteln\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Dann verliert die Datenblattansicht den Fokus und die Markierung geht verloren. Hier gibt es allerdings ein paar Workarounds. Das Ziel dabei ist: Wie kann ich eine Prozedur ausl&ouml;sen, ohne dass die Datenblattansicht den Fokus verliert und so die Markierung aufgehoben wird?<\/p>\n<p>Hier gibt es die folgenden M&ouml;glichkeiten:<\/p>\n<ul>\n<li>Die einfachere ist das Verwenden eines alternativen Steuerelements, das ein Click-Ereignis bietet und gleichzeitig nicht den Fokus erh&auml;lt. Hier k&ouml;nnen wir zum Beispiel das Bezeichnungsfeld nutzen. Mit ein paar optischen Anpassungen sieht es sogar eher wie eine Schaltfl&auml;che aus als wie ein Bezeichnungsfeld. Diese Methode haben wir in der Beispieldatenbank gew&auml;hlt.<\/li>\n<li>Etwas aufwendiger und weniger intuitiv ist das Kontextmen&uuml;. Wie das gelingt, zeigen wir gleich im Anschluss.<\/li>\n<\/ul>\n<p>Eine letzte M&ouml;glichkeit w&auml;re, dennoch einen Button zu verwenden. Dies w&uuml;rde allerdings voraussetzen, dass die aktuelle Markierung schon ausgelesen und zwischengespeichert w&uuml;rde, bevor das Datenblatt den Fokus verliert und somit die Markierung aufgehoben wird.<\/p>\n<p>Auch das kann funktionieren: Bevor das Unterformular mit der Datenblattansicht n&auml;mlich den Fokus verliert, l&ouml;st dieses immer noch das Ereignis <b>Beim Verlassen <\/b>aus. F&uuml;r dieses k&ouml;nnen wir eine Ereignisprozedur hinterlegen, die sich f&uuml;r uns die gew&auml;hlte Markierung merkt und die wir dann im Ereignis, das durch das Anklicken des Buttons ausgel&ouml;st wird, weiterverarbeiten. Das w&uuml;rde hier allerdings den Rahmen sprengen und wir schauen uns stattdessen lieber die Version an, die wir &uuml;ber das Kontextmen&uuml; steuern.<\/p>\n<h2>Richtiges Kontextmen&uuml; finden<\/h2>\n<p>Im Datenblatt gibt es verschiedene Kontextmen&uuml;s:<\/p>\n<ul>\n<li><b>Form Datasheet Cell<\/b>: Wird angezeigt, wenn wir eine Zelle anklicken.<\/li>\n<li><b>Form Datasheet Subcolumn<\/b>: Wird angezeigt, wenn wir einen der Spaltenk&ouml;pfe anklicken<\/li>\n<li><b>Form Datasheet Row<\/b>: Wird angezeigt, wenn wir einen der Zeilenk&ouml;pfe beziehungsweise Datensatzmarkierer anklicken oder den Bereich im Schnittpunkt der Zeilen- und Spaltenk&ouml;pfe. <b>Aber auch, wenn wir eine oder mehrere Zeilen &uuml;ber die Zeilenk&ouml;pfe markiert haben und dann auf eine der Zellen klicken!<\/b><\/li>\n<\/ul>\n<p>Allerdings k&ouml;nnen wir davon auch wieder nur ein Kontextmen&uuml; nutzen: <b>Form Datasheet Cell <\/b>ist nur aktiviert, wenn wir mit der rechten Maustaste auf eine einzelne Zelle klicken, die nicht als ganze Zelle markiert ist, und f&auml;llt somit schon mal weg.<\/p>\n<p>Das Kontextmen&uuml; <b>Form Datasheet Subcolumn <\/b>erscheint beim Rechtsklick auf die Spaltenk&ouml;pfe und markiert direkt die vollst&auml;ndige Spalte, was wiederum die Zeilenmarkierung aufhebt.<\/p>\n<p>Bleibt noch das Kontextmen&uuml; <b>Form Datasheet Row<\/b>. Hier gibt es wiederum zwei M&ouml;glichkeiten, dieses aufzurufen:<\/p>\n<ul>\n<li>Wenn wir es durch einen Rechtsklick auf den Datensatzmarkierer einer von mehreren markierten Zeilen aufrufen, sorgt dies daf&uuml;r, dass die Markierung auf die aktuelle Zeile festgelegt wird, die urspr&uuml;ngliche Markierung wird wieder aufgehoben. So ist das Kontextmen&uuml; nutzlos.<\/li>\n<li>Wir zeigen allerdings das gleiche Kontextmen&uuml; an, wenn wir auf eine Zelle klicken, die zu den markierten Zeilen geh&ouml;rt. Dies ist gleichzeitig der einzige Fall, in dem wir die aktuelle Markierung nicht aufheben. In Bild 6 haben wir bereits den entsprechenden Kontextmen&uuml;-Befehl <b>Auswahl verarbeiten <\/b>eingearbeitet.<\/li>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_03\/pic_1548_006.png\" alt=\"Aufruf eines Kontextmen&uuml;s f&uuml;r markierte Zeilen der Datenblattansicht\" width=\"549,559\" height=\"358,3027\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Aufruf eines Kontextmen&uuml;s f&uuml;r markierte Zeilen der Datenblattansicht<\/span><\/b><\/p>\n<\/ul>\n<p>Das Kontextmen&uuml; <b>Form Datasheet Row <\/b>k&ouml;nnen wir beispielsweise beim Laden des Formulars um den gew&uuml;nschten Eintrag erweitern. Dazu hinterlegen wir f&uuml;r das Ereignis <b>Beim Laden <\/b>die folgende Prozedur:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Form_Load()\r\n     <span style=\"color:blue;\">Dim <\/span>cbr<span style=\"color:blue;\"> As <\/span>CommandBar\r\n     <span style=\"color:blue;\">Set<\/span> cbr = CommandBars(\"Form Datasheet Row\")\r\n     On Error Resume <span style=\"color:blue;\">Next<\/span>\r\n     cbr.Controls(\"Auswahl verarbeiten\").Delete\r\n     <span style=\"color:blue;\">On Error GoTo<\/span> 0\r\n     <span style=\"color:blue;\">Set<\/span> cbbFormDatasheetRow = _\r\n         cbr.Controls.Add(msoControlButton, , , , <span style=\"color:blue;\">True<\/span>)\r\n     <span style=\"color:blue;\">With<\/span> cbbFormDatasheetRow\r\n         .Caption = \"Auswahl verarbeiten\"\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>F&uuml;r den Men&uuml;eintrag hinterlegen wir noch eine Objektvariable, die wir mit dem Schl&uuml;sselwort <b>WithEvents <\/b>deklarieren, damit wir Ereignisse f&uuml;r dieses Element implementieren k&ouml;nnen:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>WithEvents cbbFormDatasheetRow<span style=\"color:blue;\"> As <\/span>CommandBarButton<\/pre>\n<p>Die entsprechende Prozedur sieht nun wie folgt aus:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cbbFormDatasheetRow_Click(ByVal Ctrl<span style=\"color:blue;\"> As <\/span>_\r\n         Office.CommandBarButton, CancelDefault<span style=\"color:blue;\"> As Boolean<\/span>)\r\n     <span style=\"color:blue;\">Call<\/span> DatenDerMarkierungErmitteln\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Damit wird beim Anklicken des Kontextmen&uuml;befehls die aktuelle Auswahl im Datenblatt analysiert und im Direktbereich ausgegeben.<\/p>\n<h2>Aktionen f&uuml;r die markierten Eintr&auml;ge ausf&uuml;hren<\/h2>\n<p>Wenn Sie nun eine andere Aktion f&uuml;r die markierten Eintr&auml;ge ausf&uuml;hren wollen als nur die Ausgabe der Prim&auml;rschl&uuml;sselwerte im Direktbereich, ersetzen Sie einfach die entsprechende Anweisung durch die gew&uuml;nschten Funktionen. Dort k&ouml;nnen wir beispielsweise &Auml;nderungen an den Datens&auml;tzen durchf&uuml;hren, an jeden Eintrag eine E-Mail versenden et cetera.<\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Mit dieser L&ouml;sung k&ouml;nnen wir den Benutzer einladen, beliebige, zusammenh&auml;ngende Datens&auml;tze zu selektieren und damit die gew&uuml;nschten Aktionen durchzuf&uuml;hren &#8211; beispielsweise, um die Kunden einem Verteiler hinzuzuf&uuml;gen, Rechnungen zu schreiben et cetera.<\/p>\n<p>Um die gew&uuml;nschten Kunden in einem Block darstellbar zu machen, k&ouml;nnen wir uns der &uuml;blichen Methoden bedienen &#8211; wir k&ouml;nnen die Daten nach verschiedenen Kriterien filtern oder auch sortieren.<\/p>\n<p>Die Prozedur wirkt sich jeweils nur auf die aktuelle Auswahl und Sortierung aus und liefert die Daten auch in der entsprechenden Reihenfolge.<\/p>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>DatensaetzeAusDatenblattAuslesen.accdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/404451B5-C1F6-4C3E-8C22-389B162FB87D\/aiu_1548.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Datenblattansicht ist sehr hilfreich, wenn man die Daten aus Tabellen oder Abfragen in tabellarischer Form darstellen m&ouml;chte. Sie bietet au&szlig;erdem Funktionen zum Anpassen der Spalten, der Sortierung und auch der Filter. Zus&auml;tzlich k&ouml;nnen wir damit nicht nur einen Datensatz markieren, sondern gleich mehrere. Wir erhalten zwar nicht den Komfort wie im Listenfeld, wo wir nicht nur zusammenh&auml;ngende, sondern auch einzelne Eintr&auml;ge selektieren k&ouml;nnen, aber immerhin ist es grunds&auml;tzlich m&ouml;glich, bei gedr&uuml;ckter Maustaste mehr als einen Eintrag auszuw&auml;hlen. Die Frage ist nur: Was machen wir mit diesem selektierten Bereich? Das Listenfeld bietet eigene Eigenschaften, mit denen wir auf die markierten Elemente zugreifen k&ouml;nnen. Das ist in der Datenblattansicht nicht der Fall. Das soll uns jedoch nicht davon abhalten, die gew&uuml;nschten Daten weiterzuverarbeiten.<\/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":[662025,66032025,44000023],"tags":[],"class_list":["post-55001548","post","type-post","status-publish","format-standard","hentry","category-662025","category-66032025","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>Markierte Datens&auml;tze aus dem Datenblatt einlesen - 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\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Markierte Datens&auml;tze aus dem Datenblatt einlesen\" \/>\n<meta property=\"og:description\" content=\"Die Datenblattansicht ist sehr hilfreich, wenn man die Daten aus Tabellen oder Abfragen in tabellarischer Form darstellen m&ouml;chte. Sie bietet au&szlig;erdem Funktionen zum Anpassen der Spalten, der Sortierung und auch der Filter. Zus&auml;tzlich k&ouml;nnen wir damit nicht nur einen Datensatz markieren, sondern gleich mehrere. Wir erhalten zwar nicht den Komfort wie im Listenfeld, wo wir nicht nur zusammenh&auml;ngende, sondern auch einzelne Eintr&auml;ge selektieren k&ouml;nnen, aber immerhin ist es grunds&auml;tzlich m&ouml;glich, bei gedr&uuml;ckter Maustaste mehr als einen Eintrag auszuw&auml;hlen. Die Frage ist nur: Was machen wir mit diesem selektierten Bereich? Das Listenfeld bietet eigene Eigenschaften, mit denen wir auf die markierten Elemente zugreifen k&ouml;nnen. Das ist in der Datenblattansicht nicht der Fall. Das soll uns jedoch nicht davon abhalten, die gew&uuml;nschten Daten weiterzuverarbeiten.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-07T12:03:51+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=\"14\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Markierte Datens&auml;tze aus dem Datenblatt einlesen\",\"datePublished\":\"2025-05-07T12:03:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\\\/\"},\"wordCount\":2462,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"articleSection\":[\"2025\",\"3\\\/2025\",\"Mit Formularen arbeiten\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\\\/\",\"name\":\"Markierte Datens&auml;tze aus dem Datenblatt einlesen - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"datePublished\":\"2025-05-07T12:03:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Markierte Datens&auml;tze aus dem Datenblatt einlesen\"}]},{\"@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":"Markierte Datens&auml;tze aus dem Datenblatt einlesen - 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\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\/","og_locale":"de_DE","og_type":"article","og_title":"Markierte Datens&auml;tze aus dem Datenblatt einlesen","og_description":"Die Datenblattansicht ist sehr hilfreich, wenn man die Daten aus Tabellen oder Abfragen in tabellarischer Form darstellen m&ouml;chte. Sie bietet au&szlig;erdem Funktionen zum Anpassen der Spalten, der Sortierung und auch der Filter. Zus&auml;tzlich k&ouml;nnen wir damit nicht nur einen Datensatz markieren, sondern gleich mehrere. Wir erhalten zwar nicht den Komfort wie im Listenfeld, wo wir nicht nur zusammenh&auml;ngende, sondern auch einzelne Eintr&auml;ge selektieren k&ouml;nnen, aber immerhin ist es grunds&auml;tzlich m&ouml;glich, bei gedr&uuml;ckter Maustaste mehr als einen Eintrag auszuw&auml;hlen. Die Frage ist nur: Was machen wir mit diesem selektierten Bereich? Das Listenfeld bietet eigene Eigenschaften, mit denen wir auf die markierten Elemente zugreifen k&ouml;nnen. Das ist in der Datenblattansicht nicht der Fall. Das soll uns jedoch nicht davon abhalten, die gew&uuml;nschten Daten weiterzuverarbeiten.","og_url":"https:\/\/access-im-unternehmen.de\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\/","og_site_name":"Access im Unternehmen","article_published_time":"2025-05-07T12:03:51+00:00","author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"14\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Markierte Datens&auml;tze aus dem Datenblatt einlesen","datePublished":"2025-05-07T12:03:51+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\/"},"wordCount":2462,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"articleSection":["2025","3\/2025","Mit Formularen arbeiten"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\/","url":"https:\/\/access-im-unternehmen.de\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\/","name":"Markierte Datens&auml;tze aus dem Datenblatt einlesen - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"datePublished":"2025-05-07T12:03:51+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Markierte_Datensaetze_aus_dem_Datenblatt_einlesen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Markierte Datens&auml;tze aus dem Datenblatt einlesen"}]},{"@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\/55001548","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=55001548"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001548\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001548"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001548"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}