Home > Artikel > Ausgabe 5/2017 > Steuerelemente verankern

Steuer­elemente verankern

  PDF ansehen

  Download PDF und Beispieldatenbank

Mit Access 2007 hat Microsoft die beiden Eigenschaften »Horizontaler Anker« und »Vertikaler Anker« für Steuer­elemente eingeführt. Mit diesen beiden Eigenschaften können Sie die Steuer­elemente in Formularen nicht nur wie bisher oben und links verankern, sondern auch unten und rechts. Außerdem können Sie auch den Wert »Beide« auswählen und somit dafür sorgen, dass das so definierte Steuerelemente beim Vergrößern des Formulars nach rechts oder unten mit vergrößert wird.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1705_SteuerelementeVerankern.accdb.

»Horizontaler Anker« und »Vertikaler Anker«

Die beiden neuen Eigenschaften, die es für alle Steuerlemente gibt, die Sie in Access-Formularen einsetzen können, heißen Horizontaler Anker und Vertikaler Anker. Für die Eigenschaft Horizontaler Anker können Sie die folgenden Werte einstellen (siehe Bild 1):

Einstellung der beiden Eigenschaften Horizontaler Anker und Vertikaler Anker

Bild 1: Einstellung der beiden Eigenschaften Horizontaler Anker und Vertikaler Anker

  • Links: Verankert das Steuer­element auf der linken Seite. Die Größe und die Position bleiben beim Ändern der Größe des Formulars konstant.
  • Rechts: Verankert das Steuer­element auf der rechten Seite. Wenn die Breite des Formulars vergrößert wird, wird das rechts verankerte Steuerelement nach rechts verschoben, beim Verkleinern entsprechend nach links (aber nicht weiter nach links als in der Ausgangsposition).
  • Beide: Verankert das Steuer­element auf der linken und der rechten Seite. Wenn der Benutzer die Breite des Formulars vergrößert, verbreitert er damit auch das an beiden Seiten verankerte Steuer­element, umkehrt gilt es für das verkleinern der Breite – hier wird das Steuer­element allerdings nicht schmaler als im Entwurf festgelegt.

Für die Eigenschaft Vertikaler Anker gibt es diese Werte:

  • Oben: Verankert das Steuer­element am oberen Rand. Das heißt, dass sich die Größe des Steuerelements beim Ändern der Höhe des Formulars nicht ändert.
  • Unten: Verankert das Steuer­element am unteren Rand. Wenn der Benutzer die Höhe des Formulars vergrößert, verschiebt dies das Steuer­element nach unten.
  • Beide: Verankert das Steuer­element an der oberen und unteren Seite. Wenn der Benutzer also die Höhe des Formulars verändert, ändert sich das Steuer­element analog.

Verknüpfte Bezeichnungsfelder

Wenn das Steuer­element automatisch mit einem Bezeichnungsfeld angelegt wird, dann beeinflusst die Änderung der Eigenschaften Horizontaler Anker und Vertikaler Anker des Steuerelements auch die entsprechenden Einstellungen des Bezeichnungselements. Bei einem Textfeld beispielsweise ist die Eigenschaft Horizontaler Anker für das Textfeld sowie für das verknüpfte Bezeichnungsfeld standardmäßig auf Links eingestellt. Wenn Sie die Eigenschaft für das Steuer­element nun etwa auf Rechts oder Beide einstellen, ändert sich der Wert für das verknüpfte Bezeichnungsfeld auf Rechts. Damit das Bezeichnungsfeld nun nicht wie in Bild 2 immer beim Verbreitern des Formulars nach rechts verschoben wird, müssen Sie dessen Eigenschaft Horizontaler Anker wieder auf Links einstellen.

Das Bezeichnungsfeld des Listenfeldes wird beim Verbreitern des Formulars nach rechts verschoben.

Bild 2: Das Bezeichnungsfeld des Listenfeldes wird beim Verbreitern des Formulars nach rechts verschoben.

Anker über das Ribbon einstellen

Neben den beiden Eigenschaften Horizontaler Anker und Vertikaler Anker können Sie ein Steuer­element auch über die Einträge des Ribbons verankern. Diese finden Sie, wenn das Formular in der Entwurfsansicht geöffnet ist, im Ribbon unter Anordnen|Position|Anker (siehe Bild 3). Die Einstellungen haben die folgenden Werte für die Eigenschaften Horizontaler Anker und Vertikaler Anker zur Folge:

Einstellen der Verankerung über das Ribbon

Bild 3: Einstellen der Verankerung über das Ribbon

  • Oben links: Links, Oben
  • Quer nach oben dehnen: Beide, Oben
  • Oben rechts: Rechts, Oben
  • Nach unten dehnen: Links, Beide
  • Nach unten und quer dehnen: Beide, Beide
  • Nach unten und rechts dehnen: Rechts, Beide
  • Unten links: Links, Unten
  • Quer nach unten dehnen: Beide, Unten
  • Unten rechts: Rechts, Unten

Steuer­elemente unterhalb und rechts

Wenn Sie eine der beiden Eigenschaften Horizontaler Anker oder Vertikaler Anker auf Rechts/Unten oder Beide einstellen, müssen Sie beachten, dass die Elemente, die sich rechts oder unterhalb des so eingestellten Steuerelements befinden, durch den sich nach rechts oder unten verschiebenden rechten oder unteren Rand verdeckt werden können. Wenn Sie also etwa das Listenfeld aus Bild 4 so einstellen, dass es nach rechts und nach unten vergrößert wird, dann müssen Sie für alle darunter liegenden Steuer­elemente die Eigenschaft Vertikaler Anker auf den Wert Unten einstellen.

Die unter dem vertikal dehnbaren Listenfeld befindlichen Steuer­elemente müssen unten verankert werden.

Bild 4: Die unter dem vertikal dehnbaren Listenfeld befindlichen Steuer­elemente müssen unten verankert werden.

Gleiches gilt natürlich, wenn Sie neben dem Listenfeld, das auch nach rechts vergrößerbar ist, noch weitere Steuer­elemente hinzufügen. Dann müssen Sie deren Eigenschaft Horizontaler Anker auf den Wert Rechts einstellen.

Mehrere Steuer­elemente in einer Flucht vergrößern

Die Verankern-Eigenschaften sind schon ein großer Fortschritt gegenüber Access-Versionen vor der Version von 2007. Allerdings kann man damit immer nur ein Steuer­element in jede Richtung vergrößerbar gestalten. Wenn Sie etwa zusätzlich zu dem Listenfeld noch das Feld Rechnungsinformation in der Höhe anpassbar machen wollen, müssen Sie schon zu Tricks greifen.

Immerhin können Sie aber ohne Umschweife für die Eigenschaft Horizontaler Anker auch des Steuerelements Rechnungsinformation den Wert Beide einstellen. Auch dabei sollten Sie nicht vergessen, gleich den Wert Horizontaler Anker des dazugehörigen Bezeichnungsfeldes wieder auf den Wert Links einzustellen.

Weiter oben habe ich aber nun von einem Trick gesprochen, der auch das Vergrößern mehrere Steuer­elemente gleichzeitig erlaubt. Genau genommen vergrößern wir mit diesem Trick nicht zwei Steuer­elemente gleichzeitig, aber immerhin können wir per Mausklick abwechselnd jeweils eines der beiden Steuer­elemente vergrößern. Was wir dazu wissen müssen: Wir können die Eigenschaften Horizontaler Anker und Vertikaler Anker auch per VBA einstellen.

Die Eigenschaft für den horizontalen Anker heißt HorizontalAnchor, die für den vertikalen Anker heißt VerticalAnchor. Hier sind die Werte für die Eigenschaft HorizontalAnchor:

  • acHorizontalAnchorLeft: Links
  • acHorizontalAnchorBoth: Beide
  • acHorizontalAnchorRight: Rechts

Die Werte für VerticalAnchor lauten:

  • acVerticalAnchorTop: Oben
  • acVerticalAnchorBoth: Beide
  • acVerticalAnchorBottom: Unten

Wir können nun dafür sorgen, dass jeweils eines der beiden Steuer­elemente, also das Listenfeld lstProviderauswahl und das Textfeld Rechnungsinformationen, bei der Aktivierung per Mausklick vergrößert und das jeweils andere wieder verkleinert wird.

Die beiden Zustände sollen etwa wie in Bild 5 aussehen. Das heißt, wenn das Formular gerade geöffnet wurde oder wenn der Benutzer auf das Listenfeld lstProviderauswahl klickt, soll dieses Steuer­element vertikal gedeht werden. Wenn der Benutzer das Textfeld Rechnungsinformationen anklickt, soll dieses vertikal vergrößert werden und das Listenfeld seine ursprüngliche Größe erhalten.

Abwechselndes Vergrößern zweier Steuerelemente

Bild 5: Abwechselndes Vergrößern zweier Steuerelemente

Dazu benötigen wir nun noch ein passendes Ereignis, das aber schnell gefunden ist: Das Ereignis Bei Fokuserhalt wird genau dann ausgelöst, wenn der Benutzer das Steuer­element per Mausklick aktiviert (und auch, wenn er per Tabulator-Taste dorthin navigiert).

Also legen wir zwei Prozeduren für diese Ereigniss der beiden betroffenen Steuer­elemente an und füllen diese wie in Listing 1. Die erste Prozedur wird beim Aktivieren des Listenfeldes ausgelöst. Sie verankert das Listenfeld oben und unten und alle darunter liegenden Steuer­elemente unten.

Private Sub lstProviderauswahl_GotFocus()

     Me!Rechnungsinformationen.VerticalAnchor = acVerticalAnchorBottom

     Me!lstProviderauswahl.VerticalAnchor = acVerticalAnchorBoth

     Me!ProviderID.VerticalAnchor = acVerticalAnchorBottom

     Me!Bezeichnung.VerticalAnchor = acVerticalAnchorBottom

     Me!Webadresse.VerticalAnchor = acVerticalAnchorBottom

     Me!Hotline.VerticalAnchor = acVerticalAnchorBottom

     Me!lblRechnungsinformationen.VerticalAnchor = acVerticalAnchorBottom

End Sub

Private Sub Rechnungsinformationen_GotFocus()

     Me!Rechnungsinformationen.VerticalAnchor = acVerticalAnchorBoth

     Me!lstProviderauswahl.VerticalAnchor = acVerticalAnchorTop

     Me!ProviderID.VerticalAnchor = acVerticalAnchorTop

     Me!Bezeichnung.VerticalAnchor = acVerticalAnchorTop

     Me!Webadresse.VerticalAnchor = acVerticalAnchorTop

     Me!Hotline.VerticalAnchor = acVerticalAnchorTop

     Me!lblRechnungsinformationen.VerticalAnchor = acVerticalAnchorTop

End Sub

Listing 1: Einstellen der Verankern-Eigenschaften beim Fokuserhalt eines der beiden betroffenen Steuerelemente

Die zweite Prozedur feuert, wenn der Benutzer den Fokus auf das Textfeld Rechnungsinformationen verschiebt. Hier wird die Eigenschaft Vertikaler Anker für das Textfeld auf Beide eingestellt und für das Listenfeld auf Oben – genau wie für alle anderen Steuer­elemente, die sich zwischen dem Listenfeld und dem Textfeld befinden.

Auch das Bezeichnungsfeld lblRechnungsinformationen muss abwechselnd oben und unten verankert werden. Probieren Sie es aus!