Das Layout bleibt breit, nachdem das Fenster verkleinert wurde
Ein Formular mit einem WklDockLayout, dessen FillSection False ist: Nachdem das Access-Fenster vergrößert wurde,
sind die Bereiche mitgewachsen, aber wenn das Fenster wieder verkleinert wird, behalten sie ihre größere Breite, und
es erscheint eine horizontale Bildlaufleiste. Schließen und erneutes Öffnen des Formulars stellt die Entwurfsbreite
wieder her.
Umgebung
WKL Forms Object Library ab 1.23, Access-Formulare mit FillSection = False und in beide Richtungen verankertem Layout,
in Microsoft 365 Access (32 Bit) mit Formularen als Registerkarten. FillSection = True (der Standardwert) und
UserForms sind nicht betroffen.
Ursache
Ist FillSection ausgeschaltet, streckt Access selbst das verankerte Layout, wenn das Fenster wächst, und das Layout
ordnet seine Bereiche in diesem größeren Raum an. Bereiche, die über die Entwurfsbreite des Formulars hinausreichen,
veranlassen Access, das Formular zu verbreitern (Form.Width), damit sie hineinpassen. Wird das Fenster wieder
kleiner, hält Access das verankerte Layout in dem Abstand, den es zum rechten Rand des nun breiteren Formulars hatte,
und weigert sich, das Formular schmaler als den rechten Rand des Layouts zu machen – weder das Layout noch Code können
das Formular zurücknehmen, ohne die Position des Layouts zu ändern, und eine per Code gesetzte Position beendet die
Verankerung dieses Steuerelements durch Access. Ist FillSection eingeschaltet, positioniert sich das Layout selbst
und verschmälert das Formular bei jeder Größe wieder auf das Fenster, sodass der Effekt nicht auftritt.
Lösung
- Schalten Sie
FillSectionein (Eigenschaftenblatt, Registerkarte Andere, oder Designerseite Bereiche, Schalter Ganze Fläche füllen). Das Layout nimmt dann bei jeder Größe den sichtbaren Detailbereich ein; legen Sie Steuerelemente, die neben den Bereichen sichtbar bleiben müssen, in den Formularkopf oder -fuß. - Ein Benutzer, der auf die Bildlaufleiste stößt, schließt das Formular und öffnet es erneut; die gemerkte Anordnung der Bereiche kehrt zurück, das verbreiterte Formular nicht.