{"id":55000369,"date":"2017-10-01T00:00:00","date_gmt":"2020-01-24T15:59:54","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=369"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Handyverwaltung_IV_Vertraege_und_SIMKarten","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/Handyverwaltung_IV_Vertraege_und_SIMKarten.html","title":{"rendered":"Handyverwaltung IV: Vertr&auml;ge und SIM-Karten"},"content":{"rendered":"<p class='introduction'>Im vierten Teil der Artikelreihe zum Thema &#8222;Handyverwaltung&#8220; setzen wir die Arbeit an den Formularen der L&ouml;sung fort. Diesmal f&uuml;gen wir die Formulare zum Verwalten gleich zweier Objekttypen hinzu: f&uuml;r die Vertr&auml;ge und die SIM-Karten. Die Vertr&auml;ge und die SIM-Karten stehen in einem 1:n-Verh&auml;ltnis, wobei wir jedem Vertrag mehrere SIM-Karten zuordnen k&ouml;nnen wollen. Sehen Sie selbst, wie dies umgesetzt wird!<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1705_Handyverwaltung.accdb<\/b>.<\/p>\n<h2>Vor&uuml;berlegungen<\/h2>\n<p>In diesem Teil der Artikelreihe bilden wir die Formulare f&uuml;r den Ausschnitt des Datenmodells ab, den Sie in Bild 1 erkennen k&ouml;nnen. Die Tabelle <b>tblProvider <\/b>haben wir ja bereits im Artikel <b>Handyverwaltung III: Provider verwalten <\/b>&uuml;ber ein Formular f&uuml;r den Benutzer verf&uuml;gbar gemacht. Hinzu kommen nun die beiden Tabellen <b>tblVertraege <\/b>und <b>tblSIMKarten<\/b>. F&uuml;r jeden Vertrag wollen wir dabei zun&auml;chst einen Provider ausw&auml;hlen lassen, und zwar &uuml;ber ein Kombinationsfeld.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_369_001.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_369_001.png\" alt=\"Teil des Datenmodells, den dieser Teil der Artikelreihe abdeckt\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Teil des Datenmodells, den dieser Teil der Artikelreihe abdeckt<\/p>\n<p>Die Vorbereitungen dazu haben wir ja bereits getroffen, indem wir im Entwurf der Tabelle <b>tblVertraege <\/b>ein entsprechendes Nachschlagefeld angelegt haben. Als weiteres Datum f&uuml;r die Vertr&auml;ge wollen wir die Vertragsnummer speichern. Sp&auml;ter k&uuml;mmern wir uns um weitere interessante Eigenschaften eines Vertrags, n&auml;mlich zum Beispiel die Laufzeit, das Vertragsdatum, die einmalig und monatlich anfallenden Kosten und so weiter.<\/p>\n<p>Die Tabelle <b>tblSIMKarten <\/b>enth&auml;lt die Daten f&uuml;r die jeweilige SIM-Karte wie die Kartennummer, die Telefonnummer, die PINs und PUKs sowie den Vertrag, dem die Karte zugeordnet ist. Auch hier verwenden wir wieder ein Fremdschl&uuml;sselfeld als Basis f&uuml;r das Kombinationsfeld, mit dem der Benutzer den zugeh&ouml;rigen Vertrag ausw&auml;hlen kann.<\/p>\n<p>In diesem Fall wollen wir allerdings nicht nur in dem Formular, das die Details einer SIM-Karte anzeigt, die verkn&uuml;pften Vertr&auml;ge anzeigen (es kann ja f&uuml;r Vertr&auml;ge auch einmal mehr als eine SIM-Karte geben &#8211; zum Beispiel f&uuml;r ein zweites Ger&auml;t wie ein Tablet). Wir wollen auch im Formular f&uuml;r die Vertragsdetails alle mit dem Vertrag verkn&uuml;pften SIM-Karten anzeigen, und zwar in einem Unterformular.<\/p>\n<h2>Das Formular frmSIMKarten<\/h2>\n<p>Beginnen wir also mit dem einfacher zu entwerfenden Formular, n&auml;mlich dem f&uuml;r die SIM-Karten. Dieses soll die Tabelle <b>tblSIMKarten <\/b>als Datenherkunft verwenden. Wollen wir zur Verwaltung der SIM-Karten wieder zwei Formular erstellen, also ein &uuml;bersichtsformular und ein Detailformular wie bei den Personen, oder fassen wir die &uuml;bersicht und die Details in einem Formular zusammen wie bei den Providern Wir entscheiden uns f&uuml;r die letztere Variante. Allerdings soll diesmal kein Listenfeld, sondern ein Unterformular mit allen Datens&auml;tzen der Tabelle <b>tblSIMKarten <\/b>zum Einsatz kommen. Wir wollen mit der L&ouml;sung ja auch einmal verschiedene Ans&auml;tze zur Darstellung der auf unterschiedliche Art verkn&uuml;pften Daten liefern. Also legen wir zun&auml;chst eine Abfragenamens <b>qrySIMKartenNachKartennummer<\/b> an, welche die alle Felder der Tabelle <b>tblSIMKarten <\/b>liefert und die Eintr&auml;ge nach dem Feld <b>SIMKarte <\/b>sortiert (siehe Bild 2).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_369_003.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_369_003.png\" alt=\"Abfrage, welche die Felder der Tabelle tblSIMKarten nach Kartennummer sortiert liefert\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 2: Abfrage, welche die Felder der Tabelle tblSIMKarten nach Kartennummer sortiert liefert<\/p>\n<p>Diese Abfrage w&auml;hlen Sie dann f&uuml;r das neu erstellte Formular <b>sfmSIMKarten <\/b>f&uuml;r die Eigenschaft <b>Datenherkunft <\/b>ein. Wechseln Sie dann zur Anzeige der Feldliste und ziehen Sie die drei Felder <b>SIMKarteID<\/b>, <b>SIMKarte <\/b>und <b>Telefonnummer <\/b>dieser Abfrage in den Detailbereich des Formularentwurfs (siehe Bild 3). Anschlie&szlig;end stellen Sie die Eigenschaft <b>Standardansicht <\/b>auf <b>Datenblatt <\/b>ein. Schlie&szlig;en Sie das Formular nun.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_369_002.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_369_002.png\" alt=\"Unterformular f&uuml;r die Anzeige aller SIM-Karten\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 3: Unterformular f&uuml;r die Anzeige aller SIM-Karten<\/p>\n<h2>Das Hauptformular frmSIMKarten<\/h2>\n<p>Nun folgt das Hauptformular, dem Sie auch die Abfrage <b>qrySIMKartenNachKartennummer <\/b>zuweisen. Auch wenn dieses Formular immer nur einen Datensatz anzeigt, verwenden wir diese sortierte Variante der Abfrage &#8211; warum, werden Sie weiter unten sehen. Und welcher beim &ouml;ffnen des Formulars angezeigt wird, legen wir sp&auml;ter fest.<\/p>\n<p>Erstellen Sie also ein neues Hauptformular namens <b>frmSIMKarten<\/b>. Stellen Sie als Datenherkunft die Abfrage <b>qrySIMKartenNachKartennummer <\/b>ein. Da wir immer nur einen Datensatz anzeigen und die Navigation &uuml;ber die im Unterformular angezeigten Datens&auml;tze erfolgen soll, wollen wir hier die Eigenschaften <b>Datensatzmarkierer<\/b>, <b>Navigationsschaltfl&auml;chen<\/b>, <b>Trennlinien <\/b>und <b>Bildlaufleisten <\/b>auf <b>Nein <\/b>einstellen sowie die Eigenschaft <b>Automatisch zentrieren <\/b>auf den Wert <b>Ja<\/b>.<\/p>\n<p>Ziehen Sie dann als Erstes das Unterformular <b>sfmSIMKarten <\/b>aus dem Navigationsbereich in den Entwurf des Hauptformulars <b>frmSIMKarten<\/b>. Positionieren Sie es am linken Rand, sodass sie die &uuml;brigen Steuer-elemente, welche die Details zum aktuell im Unterformular ausgew&auml;hlten Datensatz anzeigen sollen, rechts noch ausreichend Platz haben.<\/p>\n<p>Nun blenden Sie die Feldliste ein und ziehen alle Felder der Datenherkunft so in das Formular, dass diese rechts vom Unterformular angezeigt werden. Das Ergebnis soll dann etwa wie in Bild 4 aussehen.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_369_004.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_369_004.png\" alt=\"Hauptformular mit Unterformular\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 4: Hauptformular mit Unterformular<\/p>\n<p>Wenn Sie nun in die Formularansicht wechseln, erhalten Sie die Ansicht aus Bild 5. Hier ist noch nicht alles Gold, was gl&auml;nzt &#8211; selbst mit fehlenden Daten noch nicht. Zun&auml;chst einmal scheint die Anzeige des Feldes <b>SIMKarteID <\/b>im Unterformular in der Datenblattansicht nicht unbedingt n&ouml;tig zu sein. Wenn diese wegf&auml;llt, haben die &uuml;brigen beiden Felder vermutlich auch schon genug Platz. Aber k&ouml;nnen wir dieses Feld einfach entfernen Im Artikel <b>Handyverwaltung III: Provider verwalten<\/b>, wo wir ein Listenfeld zur Anzeige aller Provider verwendet haben, musste die <b>ProviderID <\/b>ja explizit aufgef&uuml;hrt werden, damit wir diese als gebundene Spalte nutzen und ihren Wert ermitteln konnten. Also sollen wir das Feld SIMKarteID nun aus dem Entwurf des Unterformulars entfernen oder k&ouml;nnen wir dieses irgendwie ausblenden<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_369_005.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_369_005.png\" alt=\"Formularansicht ohne Daten\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 5: Formularansicht ohne Daten<\/p>\n<p>Ein Einstellen der Eigenschaft <b>Sichtbar <\/b>f&uuml;r das Textfeld auf den Wert <b>Nein <\/b>hilft jedenfalls in der Datenblattansicht nichts: Die Spalte wird nach wie vor angezeigt. Um zu pr&uuml;fen, was geschieht, wenn wir das Feld entfernen, m&uuml;ssen wir zun&auml;chst die synchrone Darstellung der Daten im Haupt- und Unterformular realisieren.<\/p>\n<h2>Haupt- und Unterformular synchronisieren<\/h2>\n<p>Um daf&uuml;r zu sorgen, dass das Hauptformular immer den aktuell im Unterformular markierten Datensatz anzeigt, haben wir mehrere M&ouml;glichkeiten. Man mag vermuten, dass hier der Effekt eintritt, der auch beim Erstellen von Haupt- und Unterformular f&uuml;r die Darstellung von Daten aus 1:n-Beziehungen eintritt: Hier wird ja das Unterformular-Steuerelement, dass dann schon an die entsprechende Datenherkunft gebunden sein sollte, in das Hauptformular gezogen. Wenn diese an eine Datenherkunft gebunden ist, f&uuml;r das Access eine Beziehung erkennen kann, werden die beiden Eigenschaften <b>Verkn&uuml;pfen von <\/b>und <b>Verkn&uuml;pfen nach <\/b>des Unterformular-Steuerelements automatisch mit dem Prim&auml;rschl&uuml;sselfeld und dem Fremdschl&uuml;sselfeld der Beziehung gef&uuml;llt.<\/p>\n<p>Wechseln wir einmal in die Entwurfsansicht und markieren das Unterformular-Steuerelement wie in Bild 6, erkennen wir, dass Access hier automatisch f&uuml;r beide Eigenschaften den Wert <b>SIMKarteID <\/b>eingetragen hat.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_369_006.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_369_006.png\" alt=\"Verkn&uuml;pfungseigenschaften des Unterformular-Steuerelements\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 6: Verkn&uuml;pfungseigenschaften des Unterformular-Steuerelements<\/p>\n<p>Das bedeutet, dass das Formular im Unterformular nur diejenigen Datens&auml;tze anzeigt, deren Wert im Feld <b>SIMKarteID <\/b>mit dem entsprechenden Wert im &uuml;bergeordneten Formular &uuml;bereinstimmt. Was wiederum hei&szlig;t, dass das Unterformular immer nur den Datensatz anzeigt, der momentan im Hauptformular angezeigt wird (siehe Bild 7). So soll es nat&uuml;rlich nicht aussehen, also leeren wir in einem ersten Schritt die beiden Eigenschaften Verkn&uuml;pfen von und Verkn&uuml;pfen nach des Unterformular-Steuerelements. Wichtig ist dabei, dass Sie tats&auml;chlich das Unterformular-Steuerelement markieren und nicht das Unterformular selbst. Das erreichen Sie beispielsweise, indem Sie oben links im Access-Fenster den Namen des Unterformular-Steuerelements, hier <b>sfmSIMKarten<\/b>, ausw&auml;hlen und so das Unterformular-Steuerelement markieren (siehe Bild 8).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_369_007.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_369_007.png\" alt=\"Das Unterformular zeigt nur den aktuellen Datensatz des Hauptformulars an.\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 7: Das Unterformular zeigt nur den aktuellen Datensatz des Hauptformulars an.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_369_008.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_369_008.png\" alt=\"Ausw&auml;hlen des Unterformular-Steuerelements\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 8: Ausw&auml;hlen des Unterformular-Steuerelements<\/p>\n<p>Wenn Sie nach dem Leeren der beiden Eigenschaften <b>Verkn&uuml;pfen von <\/b>und <b>Verkn&uuml;pfen nach <\/b>wieder zur Formularansicht wechseln, zeigt dieses nun alle Datens&auml;tze im Unterformular an. Wenn Sie einen davon ausw&auml;hlen, liefert das allerdings nicht die Details des Datensatzes im Hauptformular. Kein Wunder: Es gibt ja auch nun keinerlei Beziehung mehr zwischen den Daten im Haupt- und im Unterformular. Also sorgen wir zun&auml;chst daf&uuml;r, dass das Hauptformular die Daten des im Unterformular ausgew&auml;hlten Datensatzes anzeigt.<\/p>\n<p>Dazu ist nur eine einzige Anweisung n&ouml;tig. Diese f&uuml;gen Sie in einer Ereignisprozedur ein, die durch das Ereignis <b>Beim Laden <\/b>des Hauptformulars ausgel&ouml;st wird. Geben Sie dazu f&uuml;r die Eigenschaft <b>Beim Laden <\/b>des Hauptformulars den Wert <b>[Ereignisprozedur] <\/b>ein und klicken Sie auf die Schaltfl&auml;che mit den drei Punkten. Die nun erscheinende Ereignisprozedur f&uuml;llen Sie wie folgt auf:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Form_Load()\r\n    <span style=\"color:blue;\">Set<\/span> Me!sfmSIMKarten.Form.Recordset                                 = Me.Recordset\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Der n&auml;chste Wechsel zur Formularansicht zeigt, dass wir unser Ziel erreicht haben (siehe Bild 9). Was geschieht hier Wir haben die Eigenschaft <b>Recordset <\/b>des Unterformulars im Unterformularsteuerelement <b>sfmSIMKarten <\/b>auf das <b>Recordset<\/b>-Element des Hauptformulars eingestellt. Auf diese Weise zeigen das Haupt- und das Unterformular nun immer den gleichen Datensatz an, egal, ob Sie diesen im Haupt- oder im Unterformular wechseln.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_369_009.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_369_009.png\" alt=\"Das Hauptformular zeigt nun die Daten des im Unterformular ausgew&auml;hlten Datensatzes an.\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 9: Das Hauptformular zeigt nun die Daten des im Unterformular ausgew&auml;hlten Datensatzes an.<\/p>\n<h2>Unterformular aus der Reihenfolge entfernen<\/h2>\n<p>Das k&ouml;nnen Sie vom Unterformular aus testen, indem Sie dort durch die Datens&auml;tze navigieren und betrachten, wie da Hauptformular jeweils die passenden Detaildaten anzeigt. Andersherum ist es nicht so einfach zu testen, da wir bereits die Navigationsschaltfl&auml;chen ausgeblendet haben.<\/p>\n<p>So k&ouml;nnen wir nur noch mit der Tabulator-Taste durch die Steuer-elemente navigieren und w&uuml;rden so nach dem Verlassen des letzten Steuerelements zum n&auml;chsten Datensatz des Hauptformulars wechseln. Allerdings landen wir vor dem Verlassen des ersten Datensatzes im Unterformular-Steuer-element, weil dieses zuletzt zum Formular hinzugef&uuml;gt wurde und somit in der Reihenfolge die letzte Position belegt. Das k&ouml;nnen wir &auml;ndern, indem wir das Unterformular-Steuerelement einfach aus der Reihenfolge herausnehmen. Dazu stellen Sie die Eigenschaft <b>In Reihenfolge <\/b>des Steuerelements auf den Wert <b>Nein <\/b>ein. Von nun an k&ouml;nnen Sie testweise durch die Steuer-elemente des Hauptformulars navigieren, bis Sie das letzte Steuer-element des aktuellen Datensatzes verlassen und im n&auml;chsten Schritt zum ersten Feld des n&auml;chsten Datensatzes wechseln. Dann zeigt auch das Unterformular den n&auml;chsten Datensatz an.<\/p>\n<p>Da der Benutzer aber nicht mit den Tabulator-Tasten durch die Datens&auml;tze navigieren soll, sondern die Datens&auml;tze &uuml;ber die Auswahl im Unterformular ansteuern soll, legen wir noch f&uuml;r die Eigenschaft <b>Zyklus <\/b>den Wert <b>Aktueller Datensatz <\/b>fest. So kann der Benutzer mit den Tabulator-Tasten lediglich durch den aktuell angezeigten Datensatz navigieren.<\/p>\n<h2>Prim&auml;rschl&uuml;sselfeld aus Unterformular ausblenden<\/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\/55000369\/\">\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\/55000369?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\/55000369\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"123b777de9\"\/>\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>Im vierten Teil der Artikelreihe zum Thema &#8222;Handyverwaltung&#8220; setzen wir die Arbeit an den Formularen der L&ouml;sung fort. Diesmal f&uuml;gen wir die Formulare zum Verwalten gleich zweier Objekttypen hinzu: f&uuml;r die Vertr&auml;ge und die SIM-Karten. Die Vertr&auml;ge und die SIM-Karten stehen in einem 1:n-Verh&auml;ltnis, wobei wir jedem Vertrag mehrere SIM-Karten zuordnen k&ouml;nnen wollen. Sehen Sie selbst, wie dies umgesetzt wird!<\/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":[662017,66052017,44000014,44000020],"tags":[],"class_list":["post-55000369","post","type-post","status-publish","format-standard","hentry","category-662017","category-66052017","category-Loesungen","category-Tools"],"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>Handyverwaltung IV: Vertr&auml;ge und SIM-Karten - Access [basics]<\/title>\n<meta name=\"description\" content=\"Im vierten Teil der Artikelreihe zum Thema \u00bbHandyverwaltung\u00ab setzen wir die Arbeit an den Formularen der L\u00f6sung fort. Diesmal f\u00fcgen wir die Formulare zum Verwalten gleich zweier Objekttypen hinzu: f\u00fcr die Vertr\u00e4ge und die SIM-Karten. Die Vertr\u00e4ge und die SIM-Karten stehen in einem 1:n-Verh\u00e4ltnis, wobei wir jedem Vertrag mehrere SIM-Karten zuordnen k\u00f6nnen wollen. Sehen Sie selbst, wie dies umgesetzt wird!\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/Handyverwaltung_IV_Vertraege_und_SIMKarten.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Handyverwaltung IV: Vertr&auml;ge und SIM-Karten - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"Im vierten Teil der Artikelreihe zum Thema \u00bbHandyverwaltung\u00ab setzen wir die Arbeit an den Formularen der L\u00f6sung fort. Diesmal f\u00fcgen wir die Formulare zum Verwalten gleich zweier Objekttypen hinzu: f\u00fcr die Vertr\u00e4ge und die SIM-Karten. Die Vertr\u00e4ge und die SIM-Karten stehen in einem 1:n-Verh\u00e4ltnis, wobei wir jedem Vertrag mehrere SIM-Karten zuordnen k\u00f6nnen wollen. Sehen Sie selbst, wie dies umgesetzt wird!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/Handyverwaltung_IV_Vertraege_und_SIMKarten.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T15:59:54+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_369_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=\"24\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\/Handyverwaltung_IV_Vertraege_und_SIMKarten.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/pic_369_001.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Handyverwaltung_IV_Vertraege_und_SIMKarten.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/Handyverwaltung_IV_Vertraege_und_SIMKarten.html\",\"name\":\"Handyverwaltung IV: Vertr&auml;ge und SIM-Karten - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Handyverwaltung_IV_Vertraege_und_SIMKarten.html#primaryimage\"},\"datePublished\":\"2020-01-24T15:59:54+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"Im vierten Teil der Artikelreihe zum Thema \\u00bbHandyverwaltung\\u00ab setzen wir die Arbeit an den Formularen der L\\u00f6sung fort. Diesmal f\\u00fcgen wir die Formulare zum Verwalten gleich zweier Objekttypen hinzu: f\\u00fcr die Vertr\\u00e4ge und die SIM-Karten. Die Vertr\\u00e4ge und die SIM-Karten stehen in einem 1:n-Verh\\u00e4ltnis, wobei wir jedem Vertrag mehrere SIM-Karten zuordnen k\\u00f6nnen wollen. Sehen Sie selbst, wie dies umgesetzt wird!\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Handyverwaltung_IV_Vertraege_und_SIMKarten.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/Handyverwaltung_IV_Vertraege_und_SIMKarten.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Handyverwaltung_IV_Vertraege_und_SIMKarten.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\/Handyverwaltung_IV_Vertraege_und_SIMKarten.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/Handyverwaltung_IV_Vertraege_und_SIMKarten.html\",\"name\":\"Handyverwaltung IV: Vertr&auml;ge und SIM-Karten\"}}]},{\"@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\/55000369","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=55000369"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000369\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}