Ein Access-Unterformular folgt dem Raster nicht
Das Unterformular auf dem Formular zeigt keine Datensätze oder nur die des ersten Hauptdatensatzes, obwohl seine
Eigenschaft Verknüpfen von ein WklGrid (oder ein anderes WKL-Steuerelement) des Formulars nennt und der Benutzer
darin andere Datensätze auswählt.
Umgebung
WKL Forms Object Library ab 1.15, Microsoft 365 Access, ACCDB, ACCDE und Runtime.
Ursache
Access liest den Wert des verknüpften Steuerelements über dessen Value – bei einem WKL-Steuerelement der
ausgewählte Schlüssel –, aktualisiert ein Unterformular aber nicht, wenn sich dieser Wert ändert (weder eine
Änderungsbenachrichtigung des Steuerelements noch irgendetwas anderes veranlasst es dazu). Das Raster aktualisiert
deshalb jedes Mal, wenn sich sein ausgewählter Datensatz ändert, die Unterformulare seines Formulars, deren
Verknüpfen von es nennt. Das scheitert, wenn:
- Verknüpfen von etwas anderes als den Namen des Steuerelements enthält –
Grid1.KundeID, ein Feld des Formulars oder den Namen mit einem Tippfehler. Nur der reine Name wird erkannt. - das Raster einen zusammengesetzten Schlüssel hat (
KeyFieldmit mehreren Feldern):Valueist dann ein Array, das Access nicht mit einem Feld des Unterformulars vergleichen kann. - das Unterformular-Steuerelement hinzugefügt oder umbenannt wurde, während das Formular in der Formularansicht geöffnet war: Das Raster sucht verknüpfte Unterformulare einmal, beim Öffnen.
Lösung
- Setzen Sie Verknüpfen von des Unterformulars nur auf den Namen des Rasters (
Grid1) und Verknüpfen nach auf das Feld, das den Schlüssel des Rasters enthält (KundeID). - Um über ein anderes Feld des ausgewählten Datensatzes oder mit einem zusammengesetzten Schlüssel zu verknüpfen, verwenden Sie statt eines Unterformulars ein zweites
WklGridals Detail: SeinLinkMasterFieldsdarfGrid1.KundeIDnennen (Zwei Raster ohne Code verknüpfen). - Öffnen Sie das Formular nach Änderungen in der Entwurfsansicht erneut in der Formularansicht.
- Aus Code aktualisiert
Me!Sub1.Requerydas Unterformular jederzeit.