window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Handyverwaltung IV: Verträge und SIM-Karten

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Im vierten Teil der Artikelreihe zum Thema “Handyverwaltung” setzen wir die Arbeit an den Formularen der Lösung fort. Diesmal fügen wir die Formulare zum Verwalten gleich zweier Objekttypen hinzu: für die Verträge und die SIM-Karten. Die Verträge und die SIM-Karten stehen in einem 1:n-Verhältnis, wobei wir jedem Vertrag mehrere SIM-Karten zuordnen können wollen. Sehen Sie selbst, wie dies umgesetzt wird!

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1705_Handyverwaltung.accdb.

Vorüberlegungen

In diesem Teil der Artikelreihe bilden wir die Formulare für den Ausschnitt des Datenmodells ab, den Sie in Bild 1 erkennen können. Die Tabelle tblProvider haben wir ja bereits im Artikel Handyverwaltung III: Provider verwalten über ein Formular für den Benutzer verfügbar gemacht. Hinzu kommen nun die beiden Tabellen tblVertraege und tblSIMKarten. Für jeden Vertrag wollen wir dabei zunächst einen Provider auswählen lassen, und zwar über ein Kombinationsfeld.

Teil des Datenmodells, den dieser Teil der Artikelreihe abdeckt

Bild 1: Teil des Datenmodells, den dieser Teil der Artikelreihe abdeckt

Die Vorbereitungen dazu haben wir ja bereits getroffen, indem wir im Entwurf der Tabelle tblVertraege ein entsprechendes Nachschlagefeld angelegt haben. Als weiteres Datum für die Verträge wollen wir die Vertragsnummer speichern. Später kümmern wir uns um weitere interessante Eigenschaften eines Vertrags, nämlich zum Beispiel die Laufzeit, das Vertragsdatum, die einmalig und monatlich anfallenden Kosten und so weiter.

Die Tabelle tblSIMKarten enthält die Daten fü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üsselfeld als Basis für das Kombinationsfeld, mit dem der Benutzer den zugehörigen Vertrag auswählen kann.

In diesem Fall wollen wir allerdings nicht nur in dem Formular, das die Details einer SIM-Karte anzeigt, die verknüpften Verträge anzeigen (es kann ja für Verträge auch einmal mehr als eine SIM-Karte geben – zum Beispiel für ein zweites Gerät wie ein Tablet). Wir wollen auch im Formular für die Vertragsdetails alle mit dem Vertrag verknüpften SIM-Karten anzeigen, und zwar in einem Unterformular.

Das Formular frmSIMKarten

Beginnen wir also mit dem einfacher zu entwerfenden Formular, nämlich dem für die SIM-Karten. Dieses soll die Tabelle tblSIMKarten als Datenherkunft verwenden. Wollen wir zur Verwaltung der SIM-Karten wieder zwei Formular erstellen, also ein übersichtsformular und ein Detailformular wie bei den Personen, oder fassen wir die übersicht und die Details in einem Formular zusammen wie bei den Providern Wir entscheiden uns für die letztere Variante. Allerdings soll diesmal kein Listenfeld, sondern ein Unterformular mit allen Datensätzen der Tabelle tblSIMKarten zum Einsatz kommen. Wir wollen mit der Lösung ja auch einmal verschiedene Ansätze zur Darstellung der auf unterschiedliche Art verknüpften Daten liefern. Also legen wir zunächst eine Abfragenamens qrySIMKartenNachKartennummer an, welche die alle Felder der Tabelle tblSIMKarten liefert und die Einträge nach dem Feld SIMKarte sortiert (siehe Bild 2).

Abfrage, welche die Felder der Tabelle tblSIMKarten nach Kartennummer sortiert liefert

Bild 2: Abfrage, welche die Felder der Tabelle tblSIMKarten nach Kartennummer sortiert liefert

Diese Abfrage wählen Sie dann für das neu erstellte Formular sfmSIMKarten für die Eigenschaft Datenherkunft ein. Wechseln Sie dann zur Anzeige der Feldliste und ziehen Sie die drei Felder SIMKarteID, SIMKarte und Telefonnummer dieser Abfrage in den Detailbereich des Formularentwurfs (siehe Bild 3). Anschließend stellen Sie die Eigenschaft Standardansicht auf Datenblatt ein. Schließen Sie das Formular nun.

Unterformular für die Anzeige aller SIM-Karten

Bild 3: Unterformular für die Anzeige aller SIM-Karten

Das Hauptformular frmSIMKarten

Nun folgt das Hauptformular, dem Sie auch die Abfrage qrySIMKartenNachKartennummer zuweisen. Auch wenn dieses Formular immer nur einen Datensatz anzeigt, verwenden wir diese sortierte Variante der Abfrage – warum, werden Sie weiter unten sehen. Und welcher beim öffnen des Formulars angezeigt wird, legen wir später fest.

Erstellen Sie also ein neues Hauptformular namens frmSIMKarten. Stellen Sie als Datenherkunft die Abfrage qrySIMKartenNachKartennummer ein. Da wir immer nur einen Datensatz anzeigen und die Navigation über die im Unterformular angezeigten Datensätze erfolgen soll, wollen wir hier die Eigenschaften Datensatzmarkierer, Navigationsschaltflächen, Trennlinien und Bildlaufleisten auf Nein einstellen sowie die Eigenschaft Automatisch zentrieren auf den Wert Ja.

Ziehen Sie dann als Erstes das Unterformular sfmSIMKarten aus dem Navigationsbereich in den Entwurf des Hauptformulars frmSIMKarten. Positionieren Sie es am linken Rand, sodass sie die übrigen Steuer-elemente, welche die Details zum aktuell im Unterformular ausgewählten Datensatz anzeigen sollen, rechts noch ausreichend Platz haben.

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.

Hauptformular mit Unterformular

Bild 4: Hauptformular mit Unterformular

Wenn Sie nun in die Formularansicht wechseln, erhalten Sie die Ansicht aus Bild 5. Hier ist noch nicht alles Gold, was glänzt – selbst mit fehlenden Daten noch nicht. Zunächst einmal scheint die Anzeige des Feldes SIMKarteID im Unterformular in der Datenblattansicht nicht unbedingt nötig zu sein. Wenn diese wegfällt, haben die übrigen beiden Felder vermutlich auch schon genug Platz. Aber können wir dieses Feld einfach entfernen Im Artikel Handyverwaltung III: Provider verwalten, wo wir ein Listenfeld zur Anzeige aller Provider verwendet haben, musste die ProviderID ja explizit aufgefü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önnen wir dieses irgendwie ausblenden

Formularansicht ohne Daten

Bild 5: Formularansicht ohne Daten

Ein Einstellen der Eigenschaft Sichtbar für das Textfeld auf den Wert Nein hilft jedenfalls in der Datenblattansicht nichts: Die Spalte wird nach wie vor angezeigt. Um zu prüfen, was geschieht, wenn wir das Feld entfernen, müssen wir zunächst die synchrone Darstellung der Daten im Haupt- und Unterformular realisieren.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar