Farbschema: Hell
Sie befinden sich hier: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Forms Object Library » Datenansichten » WklGrid

WklGrid

Ein flaches, datengebundenes Raster für Access-Formulare. Es zeigt die Datensätze einer Tabelle, einer Abfrage oder einer SQL-Anweisung in Spalten. Benutzer und Code können gruppieren, filtern und Summen bilden. Wie ein Unterformular folgt das Raster einem Master-Datensatz, und es bleibt auch bei einer Million verknüpfter Datensätze schnell. Es baut auf der Engine von `WklTreeList` auf und teilt mit ihr Spalten, Zelleditoren, Formatierung und Export.

Erste Schritte

Häufige Aufgaben

Schaubild

+- Grid1 -------------------------------------------------------------------+
| [Ort ^]  [Aktiv ^]                                          [1]           |
+-------------+--------------+-------------------+--------------------------+
| Kunde    v  | Ort      v   | Umsatz        v   |                    [2]   |
| Bo*         |              | >= 100            |                    [3]   |
+-------------+--------------+-------------------+--------------------------+
| v Ort: Bonn (3)            |          430,00 € |                    [4]   |
| > Albers    | Bonn         |          120,00 € |                    [5]   |
|   +- Bestellungen | Notizen ---------------------------------------+  [6] |
|   | Artikel     | Menge                                            |      |
|   | Artikel 1   |    10                                            |      |
|   +----------------------------------------------------------------+      |
| > Conrad    | Bonn         |          300,00 € |                          |
| > Ort: Koeln (2)           |           80,00 € |                          |
+-------------+--------------+-------------------+--------------------------+
|             |              |          560,00 € |                    [7]   |
+---------------------------------------------------------------------------+
| [x] [Kunde] beginnt mit "Bo" und [Umsatz] >= 100     Filter löschen  [8]  |
+---------------------------------------------------------------------------+
BereichBedeutung
1Gruppierungsbereich: Einen Spaltenkopf hierher ziehen, um nach ihm zu gruppieren; ein Klick auf einen Chip kehrt die Reihenfolge seiner Gruppen um (ShowGroupPanel, GroupFields)
2Spaltenköpfe: Ein Klick sortiert, Ziehen verschiebt oder gruppiert; der Trichter öffnet die Werteliste der Spalte
3Filterzeile: eine Bedingung je Spalte (ShowFilterRow, ColumnFilter)
4Gruppenzeile mit der Anzahl der Datensätze und der Gruppensumme jeder Spalte
5Datensatz; der Pfeil klappt seine Detailansichten auf (DetailViews)
6Detailansichten des aufgeklappten Datensatzes, eine Registerkarte je verknüpfter Datenquelle
7Fußzeile mit den Spaltensummen (ShowFooter, Summary einer Spalte)
8Filterleiste, solange Spalten gefiltert sind (ShowFilterBar)

Wichtige Funktionen

  • Gebunden wie ein Datenblatt: RecordSource und KeyField genügen; die Spalten ergeben sich aus den Feldern (Designer-Seite Datenherkunft, „Spalten aus Feldern anlegen“). Änderungen schreibt Access zurück, mit Before- und After-Ereignissen, Gültigkeitsregeln und einer Zeile für neue Datensätze.
  • Gruppierung: durch den Benutzer im Gruppierungsbereich oder per Code (GroupFields), über mehrere Ebenen, mit Gruppenzeilen, die die Anzahl der Datensätze und die Summen der Spalten zeigen.
  • Spaltenfilter: Filterzeile, Werteliste in jedem Spaltenkopf, Filterleiste; dazu eine Suche über alle sichtbaren Spalten (Strg+F).
  • Master-Detail ohne Code: Das Raster folgt dem aktuellen Datensatz seines Formulars, einem anderen Raster des Formulars (LinkMasterFields = "Grid1" oder "Grid1.KundeID") oder einem Recordset; ein Access-Unterformular folgt dem Raster auf dieselbe Weise.
  • Detailansichten: Ein Datensatz klappt die zu ihm gehörenden Datensätze anderer Datenquellen auf, je eine Registerkarte (DetailViews, AddDetailView).
  • Servermodus für Datenherkünfte mit einer Million Datensätzen und mehr (DataMode = wgdServer): Gelesen werden nur die angezeigten Datensätze; Filter, Gruppierung und Summen laufen in der Datenquelle. Verknüpfte SQL-Server- und Wkl-OData-Tabellen werden an dem Access-Datenbankmodul vorbei gelesen.
  • Export nach Excel, XML und JSON so, wie das Raster es zeigt: Gruppen als Gliederung, Gruppensummen als SUBTOTAL.
  • Designer mit eigenen Seiten und einer Live-Vorschau mit den echten Daten.
  • UI Automation: Datensätze, Gruppenzeilen, Filterzeile, Gruppierungsbereich und Detailansichten für Sprachausgaben und Testwerkzeuge.

Grundkonzepte

Die Daten bleiben in Ihren Tabellen. Das Raster liest die Datenherkunft und schreibt jede Änderung über Access zurück (AutoSave), Datensatz für Datensatz und in einer Transaktion. Lehnt die Datenquelle eine Änderung ab – wegen einer Gültigkeitsregel, eines Pflichtfelds oder eines Datendienstes hinter einer ODBC-Verknüpfung –, meldet das Raster den Text von Access oder des Treibers in DataError und markiert die Zeile. Ein neuer Datensatz behält seine Werte, bis der Benutzer sie korrigiert oder verwirft; ein vorhandener Datensatz zeigt wieder den Wert aus der Datenquelle.

Datensätze sind flach, Gruppen sind eine Ansicht. Jeder Datensatz der Datenquelle ist eine Zeile. Das Gruppieren ändert die Datensätze nicht und liest sie nicht neu: Es ist eine Ansicht, die der Benutzer im Gruppierungsbereich und VBA über GroupFields ändert. Eine Gruppenzeile steht für keinen Datensatz; sie zeigt die Summen ihrer Datensätze.

Zwei Arten zu lesen. Standardmäßig (wgdMemory) lädt das Raster alle Datensätze und filtert, gruppiert und summiert im Arbeitsspeicher – richtig für einige Zehntausend Datensätze. Im Servermodus (wgdServer) fragt es die Datenquelle nach der Anzahl der Datensätze und nach der Seite, die es anzeigt; jeder Filter, jede Gruppe und jede Summe ist eine Anweisung an die Datenquelle. Der Modus ist eine Einstellung am Formular und betrifft den Code nicht, der das Raster verwendet: Die Member sind in beiden Modi dieselben.

Master-Detail in drei Richtungen. Detail seines Formulars (LinkChildFields, LinkMasterFields mit Feldern des Formulars), Detail eines anderen WKL-Steuerelements des Formulars (LinkMasterFields nennt das Steuerelement) und Master eines Access-Unterformulars (LinkMasterFields des Unterformulars nennt das Raster). Code kann die Masterwerte direkt setzen (MasterValues), etwa in UserForms von Excel und Word, die keinen Formulardatensatz haben.

Änderungen durch den Benutzer und durch Code. Eingaben, der Gruppierungsbereich, die Filterzeile und das Kontextmenü lösen Ereignisse aus (BeforeColumnFilter, BeforeGroupExpand, BeforeInsert …), in denen VBA anpassen oder abbrechen kann. Dieselben Änderungen per Code (ColumnFilter, GroupFields, CellValue) lösen keines dieser Ereignisse aus – wie AfterUpdate eines Access-Steuerelements.

Jedes Formular, auch eine Seite in einem Unterformular. Das Raster gehört zu dem Formular, auf dem es liegt; auf einer Seite, die in einem Unterformular-Steuerelement angezeigt wird, ist das das Formular der Seite. Seine Tasten (F2, Strg+F, Esc) wirken im Raster, wo immer es liegt. Einen Namen in LinkMasterFields sucht das Raster nur auf ebendiesem Formular; ein Raster auf einer Seite kann daher kein Steuerelement des Hauptformulars nennen. Verwenden Sie stattdessen MasterValues aus dem Code. Verankerungen wirken auf einer solchen Seite wie auf jedem Formular; ein in beide Richtungen verankertes Raster folgt also der Seite (WklSplitter und WklDockLayout). Um es mit anderen Bereichen anzuordnen, legen Sie es auf dieser Seite in einen Bereich eines WklDockLayout mit FillSection.

Administration

Fehlerbehebung

Für Entwickler

Verwandte Themen

Keine

de/wiki/msaccess/comctl/data-views/grid/start.txt · Zuletzt geändert: von Wolfgang van der Stille