{"id":55000223,"date":"2014-10-01T00:00:00","date_gmt":"2020-01-24T15:59:02","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=223"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Kontextmenues_im_TreeView_Teil_I_Anlegen_und_Loeschen","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/Kontextmenues_im_TreeView_Teil_I_Anlegen_und_Loeschen.html","title":{"rendered":"Kontextmen&uuml;s im TreeView, Teil I: Anlegen und L&ouml;schen"},"content":{"rendered":"<p class='introduction'>Das <b>TreeView<\/b>-Steuerelement eignet sich perfekt zur Anzeige hierarchischer Daten. Allerdings hat es einen Nachteil: Im Gegensatz zu gebundenen Formularen kann man darin nicht mal eben einen neuen Datensatz anlegen, einen Datensatz l&ouml;schen oder bearbeiten. Dazu muss man Hand in Hand mit einem weiteren Element wie etwa einem Unterformular zur Anzeige des aktuellen Datensatzes arbeiten. Aber wie legt man mal eben einen neuen Datensatz von einem <b>TreeView<\/b>-Steuerelement aus an oder l&ouml;scht ein Element Dies gelingt am einfachsten per Kontextmen&uuml;. Dieser Artikel liefert das n&ouml;tige Know-how und einige Beispiele.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1311_TreeView.mdb<\/b>.<\/p>\n<h2>Beispielformular<\/h2>\n<p>Als Beispielformular verwenden wir das im Artikel <b>TreeView und Unterformulare <\/b>aufgebaute Formular, das wir kopiert und <b>frmTreeViewKontextmenue <\/b>genannt haben.<\/p>\n<p>Damit wir &uuml;ber das <b>TreeView<\/b>-Steueelement leicht neue Kunden hinzuf&uuml;gen k&ouml;nnen, haben wir es etwas umgestaltet: Statt wie zuvor alle Kunden in der ersten Ebene des <b>TreeView<\/b>-Steuerelements anzuzeigen, haben wir einen Root-Knoten namens <b>Kunden <\/b>angelegt und alle Kunden-Elemente unterhalb dieses Knotens hinzugef&uuml;gt. Dazu waren die in Listing 1 dargestellten &auml;nderungen n&ouml;tig. Dort f&uuml;gen wir zun&auml;chst mit der <b>Add<\/b>-Methode das Root-Element mit dem <b>Key<\/b>-Wert <b>r0 <\/b>und dem Text <b>Kunden <\/b>hinzu. Dieses wird mit <b>Expanded = True <\/b>aufgeklappt. Die beim Durchlaufen der Tabelle <b>tblKunden <\/b>hinzugef&uuml;gten Elemente legt die Prozedur dann unterhalb des Elements mit dem <b>Key<\/b>-Wert <b>r0 <\/b>an. Das Ergebnis sieht schlie&szlig;lich wie in Bild 1 aus.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_223_001.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_223_001.png\" alt=\"Hinzuf&uuml;gen eines Root-Knotens zum TreeView-Steuerelement\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Hinzuf&uuml;gen eines Root-Knotens zum TreeView-Steuerelement<\/p>\n<h2>Element l&ouml;schen<\/h2>\n<p>Als Erstes wollen wir einen Kontextmen&uuml;-Eintrag hinzuf&uuml;gen, mit dem der Benutzer eines der Kunden-Elemente l&ouml;schen kann. Das Kontextmen&uuml; soll beim Anklicken des zu l&ouml;schenden Elements angezeigt werden und einen Eintrag namens <b>L&ouml;schen <\/b>anbieten. Um das Herunterdr&uuml;cken der rechtem Maustaste abzufangen, verwenden wir die Ereignisprozedur, die durch das Ereignis <b>MouseDown <\/b>ausgel&ouml;st wird. F&uuml;r ActiveX-Steuerelemente legen Sie eine solche Ereignisprozedur nicht &uuml;ber die entsprechende Eigenschaft im Eigenschaftsfenster an, sondern direkt im VBA-Fenster.<\/p>\n<p>F&uuml;r das <b>TreeView<\/b>-Steuerelement liegt bereits eine Objektvariable namens <b>m_TreeView <\/b>vor, die mit dem Schl&uuml;sselwort <b>WithEvents <\/b>deklariert wurde und somit auch Ereignisprozeduren ausf&uuml;hrt.<\/p>\n<p>&ouml;ffnen Sie also das Klassenmodul <b>Form_frmTreeviewKontextmenue <\/b>und w&auml;hlen Sie dann erst im linken Kombinationsfeld den Eintrag <b>m_TreeView<\/b> und im rechten den Eintrag <b>MouseDown <\/b>aus (siehe Bild 2).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_223_002.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_223_002.png\" alt=\"Anlegen der Ereignisprozedur MouseDown\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 2: Anlegen der Ereignisprozedur MouseDown<\/p>\n<p>Die auf diese Weise erstellte Ereignisprozedur <b>m_TreeView_MouseDown <\/b>liefert mit dem Parameter <b>Button <\/b>einen Wert, der &uuml;ber die bet&auml;tigte Maustaste Auskunft gibt. Diesen k&ouml;nnen Sie &uuml;ber die beiden Konstanten <b>acLeftButton <\/b>oder <b>acRightButton <\/b>pr&uuml;fen. In diesem Fall interessiert uns, ob der Benutzer die rechte Maustaste gedr&uuml;ckt hat. Wir k&ouml;nnen die Ereignisprozedur also mit einer Bedingung wie der folgenden anreichern:<\/p>\n<pre>Select Case Button\r\n     <span style=\"color:blue;\">Case <\/span>acRightButton\r\n         'Kontextmen&uuml; anzeigen\r\n<span style=\"color:blue;\">End Select<\/span><\/pre>\n<p>Fehlt nur noch der Code, der ermittelt, welches Element der Benutzer angeklickt hat und der das passende Kontextmen&uuml; zusammenstellt. Hat der Benutzer tats&auml;chlich mit der rechten Maustaste auf das <b>Treeview<\/b>-Steuerelement geklickt, k&ouml;nnen verschiedene F&auml;lle eintreten:<\/p>\n<ul>\n<li>Er hat mit einer anderen Maustaste als der rechten geklickt.<\/li>\n<li>Er hat mit der rechten Maustaste ein Element im <b>TreeView<\/b>-Steuerelement angeklickt.<\/li>\n<li>Er hat mit der rechten Maustaste auf einen leeren Bereich im <b>TreeView<\/b>-Steuerelement geklickt.<\/li>\n<\/ul>\n<p>Wenn der Benutzer kein Element getroffen hat, soll nichts geschehen. Aber wie pr&uuml;fen wir das Indem wir die Funktion <b>HitTest <\/b>des <b>TreeView<\/b>-Steuerelements nutzen. Diese erwartet die Koordinaten f&uuml;r den Punkt, den der Benutzer angeklickt hat. Diese liefert die Ereignisprozedur <b>MouseDown <\/b>ebenfalls, und zwar mit den Parametern <b>x <\/b>und <b>y<\/b>.<\/p>\n<p>Da wir Informationen von dem angeklickten <b>Node<\/b>-Element ben&ouml;tigen, in diesem Fall den Wert der <b>Key<\/b>-Eigenschaft, speichern wir den Verweis auf das <b>Node<\/b>-Element in einer Variablen zwischen.<\/p>\n<p>Diese deklarieren wir vorher wie folgt:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>objNode<span style=\"color:blue;\"> As <\/span>MSComctlLib.Node<\/pre>\n<p>Dem <b>Key<\/b>-Wert entnehmen wir zwei Informationen: den als erstes Zeichen angegebenen Buchstaben, der den Typ des Elements liefert (zum Beispiel <b>r <\/b>f&uuml;r Root, <b>k <\/b>f&uuml;r Kunde, <b>b <\/b>f&uuml;r Bestellung oder <b>p <\/b>f&uuml;r Bestellposition) und die folgende Zahlenkombination, die dem Prim&auml;rschl&uuml;sselwert des Datensatzes in der passenden Tabelle entspricht.<\/p>\n<p>Diese Informationen sollen ebenfalls gespeichert werden, und zwar in den folgenden Variablen:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>strTyp<span style=\"color:blue;\"> As String<\/span>\r\n<span style=\"color:blue;\">Dim <\/span>lngID<span style=\"color:blue;\"> As Long<\/span><\/pre>\n<p>Die folgenden Anweisungen ermitteln zun&auml;chst das angeklickte Element:<\/p>\n<pre><span style=\"color:blue;\">Set<\/span> objNode = m_Treeview.HitTest(x, y)<\/pre>\n<p>Da <b>HitTest <\/b>den Wert <b>Nothing <\/b>&uuml;bergibt, wenn kein Element angeklickt wurde, sondern ein leerer Bereich im <b>TreeView<\/b>-Steuerelement, pr&uuml;fen wir vor den weiteren Schritten, ob <b>objNode <\/b>&uuml;berhaupt mit einem Verweis auf ein angeklicktes Element gef&uuml;llt wurde und lesen dann die gew&uuml;nschten Informationen aus:<\/p>\n<pre><span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> objNode Is Nothing<span style=\"color:blue;\"> Then<\/span>\r\n     strTyp = <span style=\"color:blue;\">Left<\/span>(objNode.Key, 1)\r\n     lngID = <span style=\"color:blue;\">Mid<\/span>(objNode.Key, 2)\r\n<span style=\"color:blue;\">End If<\/span><\/pre>\n<p>Damit ausgestattet k&ouml;nnen wir eine <b>Select Case<\/b>-Bedingung anlegen, die den Wert der Variablen <b>strTyp <\/b>pr&uuml;ft. In unserem Beispiel enth&auml;lt <b>strTyp <\/b>einen der Werte <b>r<\/b>, <b>k<\/b>, <b>b <\/b>oder <b>p<\/b>. Um die &uuml;bersichtlichkeit zu erhalten, rufen wir f&uuml;r jeden Wert eine eigene Prozedur zum Anzeigen des Kontextmen&uuml;s auf.<\/p>\n<p>Diese hei&szlig;en <b>KontextmenueRootAnzeigen<\/b>, <b>KontextmenueKundenAnzeigen <\/b>und so weiter. Alle Prozeduren au&szlig;er das f&uuml;r das Root-Element nehmen den Prim&auml;rschl&uuml;sselwert des angeklickten Elements als Parameter entgegen. Die vollst&auml;ndige Ereignisprozedur <b>m_TreeView_MouseDown <\/b>finden Sie in Listing 2.<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>m_Treeview_MouseDown(ByVal Button<span style=\"color:blue;\"> As Integer<\/span>, ByVal Shift<span style=\"color:blue;\"> As Integer<\/span>, ByVal x<span style=\"color:blue;\"> As <\/span>stdole.OLE_XPOS_PIXELS, _\r\n         ByVal y<span style=\"color:blue;\"> As <\/span>stdole.OLE_YPOS_PIXELS)\r\n     <span style=\"color:blue;\">Dim <\/span>strTyp<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>lngID<span style=\"color:blue;\"> As Long<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>objNode<span style=\"color:blue;\"> As <\/span>MSComctlLib.Node\r\n     Select Case Button\r\n         <span style=\"color:blue;\">Case <\/span>acRightButton\r\n             <span style=\"color:blue;\">Set<\/span> objNode = m_Treeview.HitTest(x, y)\r\n             <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> objNode Is Nothing<span style=\"color:blue;\"> Then<\/span>\r\n                 strTyp = <span style=\"color:blue;\">Left<\/span>(objNode.Key, 1)\r\n                 lngID = <span style=\"color:blue;\">Mid<\/span>(objNode.Key, 2)\r\n                 Select Case strTyp\r\n                     <span style=\"color:blue;\">Case <\/span>\"k\"\r\n                         KontextmenueKundeAnzeigen(lngID)\r\n                     <span style=\"color:blue;\">Case <\/span>\"r\"\r\n                         KontextmenueRootAnzeigen\r\n                     <span style=\"color:blue;\">Case <\/span>\"b\"\r\n                         KontextmenueBestellungAnzeigen(lngID)\r\n                     <span style=\"color:blue;\">Case <\/span>\"p\"\r\n                         KontextmenuePositionAnzeigen(lngID)\r\n                 <span style=\"color:blue;\">End Select<\/span>\r\n             <span style=\"color:blue;\">End If<\/span>\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p class='imagetext'>Listing 2: Aufrufen der Prozeduren zum Anzeigen der verschiedenen Kontextmen&uuml;s<\/p>\n<p>Wir wollen mit dem Kontextmen&uuml;-Eintrag zum L&ouml;schen des aktuell angeklickten Kunden beginnen. Die entsprechende Prozedur hei&szlig;t <b>KontextmenueKundeAnzeigen<\/b> und sieht wie in Listing 3 aus. Die Prozedur deklariert eine <b>CommandBar<\/b>&#8211; und eine <b>CommandBarButton<\/b>-Variable. Dann l&ouml;scht sie ein eventuell bereits vorhandenes Kontextmen&uuml; namens <b>TreeView_Kunde<\/b>.<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>KontextmenueKundeAnzeigen(lngID<span style=\"color:blue;\"> As Long<\/span>)\r\n     <span style=\"color:blue;\">Dim <\/span>cbr<span style=\"color:blue;\"> As <\/span>Office.CommandBar\r\n     <span style=\"color:blue;\">Dim <\/span>cbc<span style=\"color:blue;\"> As <\/span>Office.CommandBarButton\r\n     On Error Resume <span style=\"color:blue;\">Next<\/span>\r\n     CommandBars(\"TreeView_Kunde\").Delete\r\n     <span style=\"color:blue;\">On Error GoTo<\/span> 0\r\n     <span style=\"color:blue;\">Set<\/span> cbr = CommandBars.Add(\"TreeView_Kunde\", msoBarPopup, False, <span style=\"color:blue;\">True<\/span>)\r\n     <span style=\"color:blue;\">With<\/span> cbr\r\n         <span style=\"color:blue;\">Set<\/span> cbc = .Controls.Add(msoControlButton)\r\n         <span style=\"color:blue;\">With<\/span> cbc\r\n             .Caption = \"Kunde l&ouml;schen\"\r\n             .OnAction = \"=KundeLoeschen(\" & lngID & \")\"\r\n         End <span style=\"color:blue;\">With<\/span>\r\n         .ShowPopup\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p class='imagetext'>Listing 3: Anzeigen des Kontextmen&uuml;s f&uuml;r einen Kunden, hier zun&auml;chst mit der M&ouml;gilchkeit zum L&ouml;schen des Kunden<\/p>\n<p>Da dies einen Fehler ausl&ouml;sen kann, deaktiviert die Prozedur die integrierte Fehlerbehandlung f&uuml;r die Durchf&uuml;hrung dieser Anweisung.<\/p>\n<p>Anschlie&szlig;end f&uuml;gt sie mit der <b>Add<\/b>-Methode der <b>CommandBars<\/b>-Auflistung ein neues Kontextmen&uuml; namens <b>TreeView_Kunde <\/b>hinzu. Dabei gibt sie mit dem ersten Parameter den Namen und mit dem zweiten den Men&uuml;typ an. Der dritte Parameter legt fest, dass es sich nicht um eine Men&uuml;leiste handelt und der vierte sorgt daf&uuml;r, dass das Kontextmen&uuml; nur tempor&auml;r erstellt wird &#8211; damit wird es beim Schlie&szlig;en von Access gel&ouml;scht.<\/p>\n<p>F&uuml;r das mit <b>cbr <\/b>referenzierte Kontextmen&uuml; f&uuml;gt die Prozedur mit der <b>Add<\/b>-Methode der <b>Controls<\/b>-Auflistung einen neuen Kontextmen&uuml;-Eintrag hinzu. Der Typ wird mit dem Wert <b>msoControlButton <\/b>festgelegt. Anschlie&szlig;end stellt die Prozedur noch die beiden Eigenschaften <b>Caption <\/b>(Beschriftung) und <b>OnAction <\/b>ein. Letztere erwartet den Aufruf der beim Ausw&auml;hlen des Kontextmen&uuml;-Eintrags auszuf&uuml;hrenden VBA-Funktion. Dieser soll gleich den Prim&auml;rschl&uuml;sselwert des angeklickten <b>TreeView<\/b>-Elements &uuml;bergeben, daher wird der Aufruf aus <b>=KundeLoeschen<\/b>, einer &ouml;ffnenden Klammer, dem Prim&auml;rschl&uuml;sselwert und einer schlie&szlig;enden Klammer zusammengesetzt &#8211; also zum Beispiel als <b>=KundeLoeschen(123)<\/b>.<\/p>\n<p>Die <b>ShowPopup<\/b>-Methode des <b>CommandBar<\/b>-Objekts zeigt das soeben erstellte Kontextmen&uuml; schlie&szlig;lich an (siehe Bild 3).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_223_003.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_223_003.png\" alt=\"Anzeigen des Kontextmen&uuml;s f&uuml;r einen Kunden\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 3: Anzeigen des Kontextmen&uuml;s f&uuml;r einen Kunden<\/p>\n<h2>Kunden l&ouml;schen<\/h2>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000;\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000;\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Access &#091;basics&#093;<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/shop.minhorst.com\/magazine\/282\/access-basics?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000;\">Danach greifen Sie sofort auf <strong>alle rund 400 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000;\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/access-basics.de\/data\/wp\/v2\/posts\/55000223\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/index.php\/data\/wp\/v2\/posts\/55000223?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/access-basics.de\/data\/wp\/v2\/posts\/55000223\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"8d63f6cbe9\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das <b>TreeView<\/b>-Steuerelement eignet sich perfekt zur Anzeige hierarchischer Daten. Allerdings hat es einen Nachteil: Im Gegensatz zu gebundenen Formularen kann man darin nicht mal eben einen neuen Datensatz anlegen, einen Datensatz l&ouml;schen oder bearbeiten. Dazu muss man Hand in Hand mit einem weiteren Element wie etwa einem Unterformular zur Anzeige des aktuellen Datensatzes arbeiten. Aber wie legt man mal eben einen neuen Datensatz von einem <b>TreeView<\/b>-Steuerelement aus an oder l&ouml;scht ein Element Dies gelingt am einfachsten per Kontextmen&uuml;. Dieser Artikel liefert das n&ouml;tige Know-how und einige Beispiele.<\/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":[66112013,662013,44000004,44000012],"tags":[],"class_list":["post-55000223","post","type-post","status-publish","format-standard","hentry","category-66112013","category-662013","category-Formulare_fuer_die_Dateneingabe","category-Steuerelemente"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v15.9.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Kontextmen&uuml;s im TreeView, Teil I: Anlegen und L&ouml;schen - Access [basics]<\/title>\n<meta name=\"description\" content=\"Das TreeView-Steuerelement eignet sich perfekt zur Anzeige hierarchischer Daten. Allerdings hat es einen Nachteil: Im Gegensatz zu gebundenen Formularen kann man darin nicht mal eben einen neuen Datensatz anlegen, einen Datensatz l\u00f6schen oder bearbeiten. Dazu muss man Hand in Hand mit einem weiteren Element wie etwa einem Unterformular zur Anzeige des aktuellen Datensatzes arbeiten. Aber wie legt man mal eben einen neuen Datensatz von einem TreeView-Steuerelement aus an oder l\u00f6scht ein Element? Dies gelingt am einfachsten per Kontextmen\u00fc. Dieser Artikel liefert das n\u00f6tige Know-how und einige Beispiele.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/Kontextmenues_im_TreeView_Teil_I_Anlegen_und_Loeschen.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kontextmen&uuml;s im TreeView, Teil I: Anlegen und L&ouml;schen - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"Das TreeView-Steuerelement eignet sich perfekt zur Anzeige hierarchischer Daten. Allerdings hat es einen Nachteil: Im Gegensatz zu gebundenen Formularen kann man darin nicht mal eben einen neuen Datensatz anlegen, einen Datensatz l\u00f6schen oder bearbeiten. Dazu muss man Hand in Hand mit einem weiteren Element wie etwa einem Unterformular zur Anzeige des aktuellen Datensatzes arbeiten. Aber wie legt man mal eben einen neuen Datensatz von einem TreeView-Steuerelement aus an oder l\u00f6scht ein Element? Dies gelingt am einfachsten per Kontextmen\u00fc. Dieser Artikel liefert das n\u00f6tige Know-how und einige Beispiele.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/Kontextmenues_im_TreeView_Teil_I_Anlegen_und_Loeschen.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T15:59:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"-0001-11-30T00:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/..\/tl_files\/images\/pic_223_001.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\">\n\t<meta name=\"twitter:data1\" content=\"20\u00a0Minuten\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/access-basics.de\/#website\",\"url\":\"https:\/\/access-basics.de\/\",\"name\":\"Access [basics]\",\"description\":\"DAS ACCESS-MAGAZIN F\\u00dcR ALLE, DIE VON 0 AUF 100 WOLLEN\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/access-basics.de\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Kontextmenues_im_TreeView_Teil_I_Anlegen_und_Loeschen.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/pic_223_001.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Kontextmenues_im_TreeView_Teil_I_Anlegen_und_Loeschen.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/Kontextmenues_im_TreeView_Teil_I_Anlegen_und_Loeschen.html\",\"name\":\"Kontextmen&uuml;s im TreeView, Teil I: Anlegen und L&ouml;schen - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Kontextmenues_im_TreeView_Teil_I_Anlegen_und_Loeschen.html#primaryimage\"},\"datePublished\":\"2020-01-24T15:59:02+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"Das TreeView-Steuerelement eignet sich perfekt zur Anzeige hierarchischer Daten. Allerdings hat es einen Nachteil: Im Gegensatz zu gebundenen Formularen kann man darin nicht mal eben einen neuen Datensatz anlegen, einen Datensatz l\\u00f6schen oder bearbeiten. Dazu muss man Hand in Hand mit einem weiteren Element wie etwa einem Unterformular zur Anzeige des aktuellen Datensatzes arbeiten. Aber wie legt man mal eben einen neuen Datensatz von einem TreeView-Steuerelement aus an oder l\\u00f6scht ein Element? Dies gelingt am einfachsten per Kontextmen\\u00fc. Dieser Artikel liefert das n\\u00f6tige Know-how und einige Beispiele.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Kontextmenues_im_TreeView_Teil_I_Anlegen_und_Loeschen.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/Kontextmenues_im_TreeView_Teil_I_Anlegen_und_Loeschen.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Kontextmenues_im_TreeView_Teil_I_Anlegen_und_Loeschen.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/\",\"url\":\"https:\/\/access-basics.de\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Kontextmenues_im_TreeView_Teil_I_Anlegen_und_Loeschen.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/Kontextmenues_im_TreeView_Teil_I_Anlegen_und_Loeschen.html\",\"name\":\"Kontextmen&uuml;s im TreeView, Teil I: Anlegen und L&ouml;schen\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/access-basics.de\/#personlogo\",\"inLanguage\":\"de\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000223","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/comments?post=55000223"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000223\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000223"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000223"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}