Kundenraster mit Bestellungen erstellen
In diesem Tutorial legen Sie eine Tabelle mit Kunden und eine Tabelle mit deren Bestellungen an
und platzieren zwei WklGrid-Steuerelemente auf einem Formular. Das erste binden Sie mit dem
Designer, das zweite verknüpfen Sie ohne Code mit dem ersten. Anschließend fügen Sie eine
Detailansicht hinzu und arbeiten in der Formularansicht mit Gruppen und Filtern. Das dauert
etwa fünfzehn Minuten.
Voraussetzungen
- Microsoft 365 Access oder Access Runtime, in 32 oder 64 Bit, mit der WKL Forms Object Library 1.23 oder höher, installiert und für den aktuellen Windows-Benutzer registriert (Freigegebenes Paket installieren).
- Eine neue Datenbank an einem vertrauenswürdigen Speicherort.
- Jedes WKL-Steuerelement öffnet seinen Designer auf dieselbe Weise: in der Entwurfsansicht im Eigenschaftenblatt (F4), Registerkarte Andere, Zeile Benutzerdefiniert,
[...](Designer eines Steuerelements öffnen).
Schritte
1. Beispieltabellen anlegen
Führen Sie diese Zeilen nacheinander im Direktbereich (Strg+G) aus:
CurrentDb.Execute "CREATE TABLE tblKunden (KundeID COUNTER PRIMARY KEY, Firma TEXT(50), Ort TEXT(50), Umsatz CURRENCY)"
CurrentDb.Execute "CREATE TABLE tblBestellungen (BestellNr COUNTER PRIMARY KEY, KundeID LONG, Artikel TEXT(50), Menge LONG)"
CurrentDb.Execute "INSERT INTO tblKunden (Firma, Ort, Umsatz) VALUES ('Albers', 'Bonn', 120)"
CurrentDb.Execute "INSERT INTO tblKunden (Firma, Ort, Umsatz) VALUES ('Bauer', 'Köln', 80)"
CurrentDb.Execute "INSERT INTO tblKunden (Firma, Ort, Umsatz) VALUES ('Conrad', 'Bonn', 300)"
CurrentDb.Execute "INSERT INTO tblBestellungen (KundeID, Artikel, Menge) VALUES (1, 'Schrauben', 100)"
CurrentDb.Execute "INSERT INTO tblBestellungen (KundeID, Artikel, Menge) VALUES (3, 'Muttern', 50)"
CurrentDb.Execute "INSERT INTO tblBestellungen (KundeID, Artikel, Menge) VALUES (3, 'Unterlegscheiben', 20)"
2. Zwei Raster einfügen
Erstellen Sie ein leeres Formular, speichern Sie es als frmKunden und bleiben Sie in der
Entwurfsansicht. Wählen Sie Formularentwurf › Steuerelemente › ActiveX-Steuerelemente,
markieren Sie WKL Grid und klicken Sie auf OK. Ziehen Sie das Steuerelement über die
obere Hälfte des Formulars auf und nennen Sie es Grid1. Fügen Sie darunter ein zweites
WKL Grid ein und nennen Sie es Grid2. Speichern Sie das Formular.
3. Kunden mit dem Designer binden
Markieren Sie Grid1, öffnen Sie das Eigenschaftenblatt, Registerkarte Andere, und
klicken Sie in der Zeile Benutzerdefiniert auf [...]. Im Designer:
- Seite Datenherkunft: Wählen Sie
tblKundenals Tabelle undKundeIDals Schlüsselfeld, und klicken Sie dann auf Spalten aus Feldern anlegen. - Seite Spalten: Markieren Sie
Umsatz, setzen Sie Format aufWährungund Summe in der Fußzeile aufSumme. - Seite Gruppierung und Summen: Schalten Sie Fußzeile mit Summen ein.
- Seite Darstellung: Schalten Sie Live-Vorschau mit echten Daten ein.
Die Vorschau rechts zeigt die drei Kunden mit der Summe. Klicken Sie auf OK und speichern Sie das Formular.
4. Bestellungen mit dem ausgewählten Kunden verknüpfen
Markieren Sie Grid2 und öffnen Sie seinen Designer auf dieselbe Weise:
- Seite Datenherkunft:
tblBestellungen, SchlüsselfeldBestellNr, Spalten aus Feldern anlegen. - Seite Verknüpfung: Wählen Sie als Masterfeld
Grid1(die Liste bietet die anderen Raster des Formulars und deren Felder an) und als DetailfeldKundeID.
Klicken Sie auf OK und speichern Sie das Formular. Code ist nicht nötig: Grid2 zeigt die
Bestellungen des Kunden, der in Grid1 ausgewählt ist.
5. Detailansicht hinzufügen
Öffnen Sie erneut den Designer von Grid1, Seite Detailansichten, klicken Sie auf
Hinzufügen und tragen Sie ein: Tabelle tblBestellungen, Schlüsselfeld BestellNr, Detailfeld
KundeID, Masterfeld KundeID, Beschriftung Bestellungen. Klicken Sie auf OK und
speichern Sie das Formular.
Dasselbe per Code, zum Beispiel in Form_Load:
Me.Grid1.Object.AddDetailView "Bestellungen", "tblBestellungen", "BestellNr", "KundeID", "KundeID", "Bestellungen"
6. Mit dem Formular arbeiten
Öffnen Sie frmKunden in der Formularansicht:
- Klicken Sie in
Grid1aufConrad:Grid2zeigt zwei Bestellungen. - Klicken Sie auf den Pfeil links neben
Conrad(oder drücken Sie Strg und +): Die Bestellungen öffnen sich unter dem Datensatz auf der Registerkarte Bestellungen. - Ziehen Sie den Spaltenkopf Ort in den Gruppierungsbereich über den Spaltenköpfen: Die Kunden werden nach Ort gruppiert, jede Gruppenzeile mit der Anzahl ihrer Datensätze und ihrer Summe.
- Klicken Sie mit der rechten Maustaste auf einen Spaltenkopf und wählen Sie Filterzeile anzeigen. Geben Sie dann unter Umsatz
>= 100ein: Nur Albers und Conrad bleiben übrig; die Filterleiste unter dem Raster zeigt die Bedingung. - Klicken Sie mit der rechten Maustaste auf das Raster und wählen Sie Exportieren …, um das Raster als Excel-Arbeitsmappe mit den Gruppen als Gliederung zu speichern.
Erwartetes Ergebnis
Ein Formular mit zwei Rastern, die ohne eine Zeile Code zusammenarbeiten: Die Bestellungen folgen dem ausgewählten Kunden, jeder Kunde klappt seine Bestellungen auf, und Gruppen, Filter und Summe reagieren sofort auf den Benutzer. Die Einstellungen des Designers werden mit dem Formular gespeichert.
Nächste Schritte
- Zwei Raster ohne Code verknüpfen, auch mit einem Access-Unterformular