Zwei Raster ohne Code verknüpfen
Zeigen Sie die Bestellungen des in einem Raster ausgewählten Kunden in einem zweiten Raster – oder in einem Access-Unterformular – im selben Formular an, ohne VBA.
Voraussetzungen: WKL Forms Object Library 1.23 oder höher.
Lösungsüberblick
LinkMasterFields des Details nennt statt eines Formularfelds das Masterraster: Grid1 steht für dessen Schlüssel,
Grid1.FieldName für ein Feld seines ausgewählten Datensatzes. LinkChildFields nennt das Feld der Detaildatensätze,
das diesen Wert enthält. Ein Access-Unterformular nennt das Raster in seinem eigenen LinkMasterFields.
Umsetzung
Raster mit Raster (Designerseite Verknüpfung, das Eigenschaftenblatt oder Code):
With Me!Grid2.Object
.LinkChildFields = "KundeID"
.LinkMasterFields = "Grid1" ' the key of the customer selected in Grid1
End With
' A field of the selected record other than the key:
Me!Grid3.Object.LinkChildFields = "KundeID"
Me!Grid3.Object.LinkMasterFields = "Grid2.KundeID" ' Grid2 shows orders
Raster mit Unterformular (Eigenschaftenblatt des Unterformular-Steuerelements, Registerkarte Daten):
| Eigenschaft | Wert |
|---|---|
| Verknüpfen nach | Grid1 |
| Verknüpfen von | KundeID |
Hinweise
- Das Detail folgt sofort, wenn Code
SelectedKeydes Masters setzt, und nach einer kurzen Pause (120 ms), während der Benutzer sich mit den Pfeiltasten durch den Master bewegt; eine gedrückt gehaltene Taste fragt das Detail also nicht für jeden überquerten Datensatz ab. - Ist im Master nichts ausgewählt, eine Gruppenzeile oder die Zeile für einen neuen Datensatz, zeigt das Detail keine Datensätze, so wie ein Unterformular bei einem neuen Masterdatensatz.
Grid1.FieldNamedarf den Schlüssel, eine Spalte oder ein beliebiges anderes Feld der Datenherkunft des Masters nennen; ein Feld, das keine Spalte ist, wird mit einer einzigen Anweisung gelesen und aufbewahrt, bis der Master weiterwechselt.- Master kann jedes WKL-Steuerelement des Formulars sein:
WklGrid,WklTreeList,WklTreeView,WklGantt. Einträge beider Arten lassen sich mischen:"Grid1;Jahr"nimmt den Schlüssel vonGrid1und das FeldJahrdes Formulars. - Ein Access-Unterformular liest den ausgewählten Schlüssel des Rasters über dessen
Value. Access aktualisiert ein Unterformular nicht, wenn sich der Wert eines ActiveX-Steuerelements ändert; das Raster fragt deshalb die Unterformulare seines Formulars neu ab, derenLinkMasterFieldses nennt. Nur ein Raster mit einem einzelnen Schlüsselfeld kann ein Unterformular steuern; für ein anderes Feld des ausgewählten Datensatzes verknüpfen Sie ein zweites Raster mitGrid1.FieldName. - In der Entwurfsansicht mit
LivePreviewzeigt das Detail die Datensätze des ersten Datensatzes der Datenherkunft des Masters. - Im Servermodus ist die Masterbedingung Teil jeder Anweisung des Details.
Verwandte Themen
- Struktur mit einem Masterdatensatz verknüpfen (das Formular, ein Recordset oder Werte aus dem Code als Master)
de/wiki/msaccess/comctl/how-to/link-two-grids.txt · Zuletzt geändert: von Wolfgang van der Stille