Home > Artikel > Ausgabe 5/2016 > Designs für Steuerelemente

Designs für Steuerelemente

Achtung: Sie sind nicht angemeldet. Wenn Sie Abonnent sind und sich anmelden, lesen Sie den kompletten Artikel, laden das PDF herunter oder probieren die Beispieldatenbank aus (sofern vorhanden).

Access 2010 räumte mit der Notwendigkeit auf, jedes Steuerelement in seinem Layout einzeln formatieren zu müssen. Neben zusätzlichen Gestaltungsmöglichkeiten wurden die sogenannten Designs eingeführt, welche als Vorlagen dienen, und einem Satz von Steuerelementen im Formularentwurf auf einen Schlag zugewiesen werden können. Weil das Ganze aber etwas undurchsichtig realisiert ist, haben wir das Wesentliche zum Thema hier zusammengetragen.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1605_ControlDesigns.accdb

Designs

Als Design bezeichnet Microsoft unter Access einen Satz von Voreinstellungen für Farben, Schriftarten und anderen Formatierungen für Steuerelemente. Ein abgespeichertes Design kann markierten Elementen auf einen Schlag verabreicht werden, wobei sie dann die entsprechende Gestalt annehmen.

Das bestimmte Design kann aber nicht nur einzelnen Steuerelementen oder Formularen und Berichten zugewiesen werden, sondern der Datenbank global. Damit erhalten neu angelegte Elemente automatisch das gewünschte einheitliche Aussehen. Access enthält bereits eine große Auswahl von Designsätzen, die Sie um eigene Kreationen erweitern können, um Ihre Corporate Identity zu manifestieren.

Die Grundlagen zu Designs wurden bereits in der Ausgabe 06/2015 von Access Basics behandelt. Dort ging es um die Neuanlage oder Modifikation von Designs. Hier jedoch schauen wir uns näher an, welche Bestandteile ein Design enthält und wie sich die Formatierungen auch über VBA steuern lassen.

Designs in der Benutzeroberfläche

Etwas verwirrend mag erscheinen, dass die Funktionen zu Designs im Ribbon auf mehrere Orte verteilt sind. Haben Sie etwa ein Formular im Entwurf oder in der Layoutansicht geöffnet, so gibt es zwei Tabs, die aktiv werden. Der eine verzeichnet unter Entwurf die Gruppe Designs, der andere nennt sich Format und beherbergt die Anweisungen zum Gestalten der einzelnen Steuerelemente.

Bild 1 zeigt die Gruppe Designs im Entwurf-Reiter. Dort lassen sich Designs auswählen (siehe Bild 2), bearbeiten und neu anlegen. Die Ribbon-Galerien unter Farben und Schriftarten ermöglichen das Bestimmen von Farbpaletten und Schriftvorgaben. Während diese beiden nicht interaktiv mit dem Formular zusammenarbeiten, reicht in der Designs-Galerie bereits das Überfahren mit der Maus über die einzelnen Designs aus, um das neue Aussehen des Formulars im Entwurf zu begutachten. Weitere wissenswerte Informationen darüber erhalten Sie, wie erwähnt, in der Ausgabe 06/2015.

Im Entwurfs-Ribbon finden Sie links die Abteilung zu Design-Elementen

Bild 1: Im Entwurfs-Ribbon finden Sie links die Abteilung zu Design-Elementen

Die Ribbon-Galerie mit den Design-Vorlagen

Bild 2: Die Ribbon-Galerie mit den Design-Vorlagen

Markieren Sie hingegen im Formular ein Steuerelement, so aktivieren sich im Format-Reiter verschiedene Elemente der Abteilung Steuerelementformatierung (siehe Bild 3). Je nach Art des Steuerelements sind die Möglichkeiten mehr oder wenig begrenzt. Bei einer Schaltfläche etwa sind alle Elemente aktiv, während bei einer Textbox nur Fülleffekt und Formkontur Änderungen zulassen. Die anderen Elemente im Ribbon sind dann deaktiviert.

Die Designerabteilung Steuerelementformatierung im Format-Ribbon

Bild 3: Die Designerabteilung Steuerelementformatierung im Format-Ribbon

Klappen Sie die Schnellformatvorlagen aus, so finden Sie in dieser eine Vielzahl von Voreinstellungen für die Gestaltung des Steuerelements. Das betrifft Form, Ränder, Schatten, et cetera. Leider ist diese Dropdown-Galerie nur und ausschließlich bei Buttons aktiv. Also bei normalen Schaltflächen, wie auch Umschaltflächen. Für alle anderen Steuerelemente gibt es keine Schnellformatvorlagen!

Das gleiche gilt für die Galerie Form ändern, die die Erscheinungen in Bild 4 anbietet. Die Schnellformatvorlagen basieren übrigens jeweils auf den Farben des aktuell eingestellten Designs.

Formtypen für Buttons

Bild 4: Formtypen für Buttons

Für alle Steuerelemente jedoch können zumindest Füll- und Randfarbenfarben bestimmt werden. Die Formkontur im Menü betrifft die Ränder eines Steuerelements. Ausgeklappt zeigt sich die Abteilung in Bild 5. Im oberen Bereich sind die zehn Designfarben abgebildet, wobei diese in unterschiedlichen Helligkeitsvarianten daherkommen. Darunter findet sich die Palette der Standardfarben. Nach mehrmaliger Auswahl von Farben aus einem der Bereiche füllt sich die Zeile mit den Zuletzt verwendeten Farben. Transparent eliminiert den Rand und macht ihn durchsichtig, entfernt ihn quasi.

Randgestaltung über Farben und Linienarten

Bild 5: Randgestaltung über Farben und Linienarten

Sie sind natürlich nicht ausschließlich auf die Farben der dargestellten Paletten angewiesen, sondern können über Weitere Farben und den dann sich öffneten Farbmischerdialog beliebige Farben auswählen. Auch diese verewigen sich über die Dauer der Sitzung unter Zuletzt verwendete Farben, aus denen sie sich anschließend schnell wieder anwählen lassen.

Die Hintergrundfarbe eines Steuerelements nennt sich im Ribbon-Menü Fülleffekt. Die Galerie ähnelt mit ihren Farbpaletten jener für die Formkontur. Eine Farbe ist aber ja noch kein Effekt: Bei Schaltflächen – und nur bei diesen! – ist zusätzlich der Eintrag Farbverlauf aktiv (siehe Bild 6). Der Verlauf basiert dabei auf der zuvor ausgewählten Farbe. Der Kontrast des Verlaufs ist grundsätzlich festgelegt, kann also nicht von Ihnen bestimmt werden.

Bei Schaltflächen stehen neben den normalen Hintergrundfarben zur Gestaltung auch noch verschiedene einfarbige Verläufe zur Auswahl

Bild 6: Bei Schaltflächen stehen neben den normalen Hintergrundfarben zur Gestaltung auch noch verschiedene einfarbige Verläufe zur Auswahl

Soviel zum Layout für alle Steuerelemente. Richtig interessant wird es bei Buttons, wo sich im Ribbon neben dem Formtyp noch sogenannte Formeffekte auswählen lassen. Das sind vier Kategorien im Dropdown-Menü links in Bild 7. Die Pfeile verdeutlichen, welche Untergalerien sich zu diesen öffnen. Alle vier Effekte können beliebig miteinander kombiniert werden. Allerdings gibt es hier Konflikte. Ist ein Button etwa mit einem leichten Leuchten versehen, so verschwindet möglicherweise ein gleichzeitig aktivierter Schatten, weil sich beides überlagert. Experimentieren Sie hier einfach ein wenig herum, um die Priorität eines Effekts zu ermitteln. Auch die Weichen Kanten vertragen sich teilweise nicht mit dem Schatten. Grundsätzlich aber gilt dies: Leuchten und Schatten vergrößern die Fläche, die ein Button regulär einnimmt, während Weiche Kanten und Abschrägung innerhalb dieser wirken.

Alle Formeffekte in den entsprechenden Ribbon-Galerien für Schaltflächen auf einen Blick

Bild 7: Alle Formeffekte in den entsprechenden Ribbon-Galerien für Schaltflächen auf einen Blick

Bild 8 zeigt das Formular frmDesigns der Beispieldatenbank. Hier sind fast alle möglichen Steuerelemente mit einem Design versehen. Rechts oben ist übrigens ein MSForms-Image eingefügt, also ein ActiveX-Steuerelement. Beim Markieren dieser Elemente im Formularentwurf können Sie im Ribbon kontrollieren, welche Formatierungsmöglichkeiten für sie zur Verfügung stehen. Dabei fällt Ihnen eventuell auf, dass die Spezialeffekte für Schaltflächen auch beim Registersteuerelement verfügbar sind. Wieso das? Ganz einfach: Ein Registersteuerelement stellt Imgrunde die Kombination aus zwei Elementen dar. Die Laschen oben sind tatsächlich Buttons. Deutlich wird dies, wenn Sie das Element im Eigenschaftenblatt unter Format | Formatvorlage in den Modus Schaltflächen versetzen. Ein Verlauf wirkt sich dann tatsächlich auch nur auf diesen Bereich aus und dehnt sich nicht etwa auf die gesamte Fläche des Steuerelements aus.

Im Formular frmDesigns sind alle Steuerelemente inklusive ActiveX vereint

Bild 8: Im Formular frmDesigns sind alle Steuerelemente inklusive ActiveX vereint

Formatierungseigenschaften ermitteln

Damit Sie nicht auf Versuch und Irrtum angewiesen sind, ist in der Beispieldatenbank eine Routine enthalten, die die Formatierungseigenschaften aller Steuerelemente über VBA ermittelt.

Nach dem Öffnen des Formulars frmDesigns wird im Ereignis Beim Laden die Unterprozedur EnumCtlProperties aufgerufen. Wir geben diese nicht komplett wieder, sondern konzentrieren uns auf das verwendete Datenmodell, bestehend aus den Tabellen tblControls, tblCtlProperties und tblProperties (Bild 9, vorige Seite).

Tabellenabhängikeiten im Datenmodell zum Bestimmen der Formatierungseigenschaften aller Steuerelemente in der Beispieldatenbank

Bild 9: Tabellenabhängikeiten im Datenmodell zum Bestimmen der Formatierungseigenschaften aller Steuerelemente in der Beispieldatenbank

Die Tabelle tblProperties ist bereits gefüllt und enthält alle Formatierungseigenschaften mit ihrem VBA-Namen. Hintergrundfarbe heißt hier BackColor, Leuchten Glow, Formtyp Shape, et cetera. Die Routine durchläuft alle Steuerelemente des Formulars anhand seiner Controls-Auflistung und schreibt die Steuerelementbezeichnungen in die Tabelle tblControls:

For Each ctl In Me.Controls

   rs!ControlName.Value = TypeName(ctl)

Next ctl

Zu jedem liest sie dann den Wert aller VBA-Formatierungseigenschaften aus. Nicht unterstützte Eigenschaften zeitigen dabei einen Fehler, der über On Error Resume Next aufgefangen wird. Ereignet sich kein Fehler, so schreibt die Prozedur einen neuen Datensatz in die Tabelle tblCtlProperties, wobei sowohl Control, wie Property, durch die IDs der Nachschlagetabellen tblControls und tblProperties referenziert sind:

Dim vProp As Variant, lCtl As Long

lCtl = DLookup("ID", "tblControls", _

     "ControlName='" & TypeName(ctl) _

     & "'")

On Error Resume Next

vProp = ctl.Properties(sProp)

If Err.Number = 0 Then

     rs2.AddNew

     rs2!IDControl = lCtl

     rs2!IDProperty = nProp

     rs2.Update

End If

Die Funktion TypeName ermittelt dabei den VBA-Namen eines konkreten Steuerelements. Eine Schaltfläche cmdOK hat etwa den TypeName CommandButton. Nach dem Durchlaufen dieser Routine können Sie die Tabelle tblControls öffnen und zu jedem Steuerelement das Unterdatenblatt ausklappen. Es zeigt dann alle für dieses Element gültigen Eigenschaften an (siehe Bild 10, vorige Seite).

Die Tabelle tblControls mit ausgeklapptem Unterdatenblatt

Bild 10: Die Tabelle tblControls mit ausgeklapptem Unterdatenblatt

Wesentlich übersichtlicher wäre es, wenn Sie alle unterstützten Eigenschaften aller Steuerelemente in einer Übersicht vor sich hätten. Kein Problem! Erstellen Sie eine Kreuztabellenabfrage, wie in Bild 11 dargestellt. Die Steuerelementeigenschaften dienen als Zeilenüberschrift, die Control-Namen als Spaltenüberschrift. Gibt es keine Übereinstimmung zwischen Eigenschaft und Control in der Tabelle tblCtlProperties, so ist IDProperty Null, was im Ausdruck für den Wert der Kreuztabellenzelle ausgewertet wird und zu einem Leer-String führt. Andernfalls wird ein X eingesetzt. Das Ergebnis dieser Abfrage qry_ctlProperties sehen Sie ausschnittsweise in Bild 12. Sie können Zeilen- und Spaltenüberschriften auch vertauschen und kämen dann zu einer Abfrage, in der die Zeilen den Control-Namen anzeigten und die Spalten die Eigenschaften. In der Datenbank ist diese Abfrage mit qry_ControlProperties2 bezeichnet.

Kreuztabellenabfrage auf Basisi der drei Tabellen zu den Steuerelementeigenschaften

Bild 11: Kreuztabellenabfrage auf Basisi der drei Tabellen zu den Steuerelementeigenschaften

Kreuztabellenabfrage zur Laufzeit mit allen Steuerelementeigenschaften

Bild 12: Kreuztabellenabfrage zur Laufzeit mit allen Steuerelementeigenschaften

Die Übersicht gibt gut wieder, dass die Schaltfläche (Commandbutton) alle Eigenschaften unterstützt, das Kontrollkästchen (Checkbox) etwa dagegen nur einen Bruchteil.

Design: Ja oder Nein?

Bei markiertem Steuerelement im Formularentwurf können Sie im Eigenschaftenblatt unter Format | Design verwenden die Einstellungen Ja oder Nein vornehmen. Wählen Sie Nein aus, so wechselt das Element sein Aussehen und zeigt sich im von Windows vorgesehenen Gewand. Je nach Betriebssystem und dessen Vorgaben kann das unterschiedlich sein. Unter Vista etwa zeigt sich bei Buttons dieser Glanzeffekt, bei Windows 7 ff. eine flachere Darstellung. Voraussetzung allerdings ist, dass Sie in den Optionen der Datenbank unter Aktuelle Datenbank den Eintrag Steuerelemente mit Windows-Design auf Formularen verwenden aktiviert haben.

Bei Schalten auf Nein vergisst Access allerdings sämtliche Design-Einstellungen, die Sie zuvor auf das Steuerelement anwandten. Das bedeutet, dass ein erneutes Aktivieren durch Wechsel auf Ja die alten Einstellungen nicht wiederherstellt! Sie müssen dann manuell nacheinander neu gesetzt werden.

Umgekehrt ist diese Eigenschaft keinesfalls persistent. Steht sie auf Nein, so reicht bereits die Auswahl einer Hintergrundfarbe (Fülleffekt) aus, damit sie sich automatisch wieder auf Ja umstellt.

Button-Designs

Da Schaltflächen die meisten Gestaltungsmöglichkeiten anbieten, schauen wir uns diese einmal genauer an. Das Formular frmDesignTest (Bild 13) enthält einen Button, dessen Formatierung sich über weitere Steuerelemente und VBA einstellen lässt. Alle Designeigenschaften sind im Objektmodell von Access vertreten und lassen sich deshalb nicht nur manuell, sondern auch über VBA steuern!

Steuerung der Formatierung eines Button

Bild 13: Steuerung der Formatierung eines Button

Rechts haben Sie über die Optionsgruppe die Möglichkeit, eine bestimmte Eigenschaft anzuwählen. In der Abbildung wäre das Bevel, das VBA-Synonym zur Abschrägung. Über den Pfeil-Button weisen Sie nun Schritt für Schritt der Eigenschaft bestimmte Werte zu. Dies sind immer Integer-Werte, die dann in der Textbox rechts unten ausgegeben werden. Die Bedeutung dieser entnehmen Sie bitte der Hilfe von Access, indem Sie die entsprechende Eigenschaft im Objektkatalog von VBA markieren und F1 drücken. (In der Form_Load-Prozedur des Formulars frmDesigns finden Sie übrigens alle denkbaren Eigenschaften kommentiert vor.) Mit Aktivieren von Auto kommt der Timer des Formulars ins Spiel. Alle 100 ms schaltet er einen neuen Wert für die gewählte Eigenschaft in der Prozedur Form_Timer ein. Sie bekommen damit einen Animationseffekt für die Formatierungseigenschaft.

Indem Sie nacheinander verschiedene Eigenschaften aktivieren und manuell mit dem Pfeil-Button einstellen, bekommen Sie eine Vorstellung von den Gestaltungsmöglichkeiten für Effektkombinationen bei Buttons. Und auch davon, wie sich manche Einstellungen, beziehungsweise Werte, miteinander "beißen".

Statt die Timer-Routine des Formulars als Listing zu erläutern, folgen hier einige Beispiele für die Design-Steuerung. Den normalen Schatten bekommen Sie für die Schaltfläche cmdTest so:

Me!cmdTest.Shadow = 1

Setzen Sie etwa 9 ein, so findet sich der Schatten links oben wieder. Der Wertebereich liegt zwischen 0 für Kein Schatten und 23. Die Access-Hilfe listet alle Werte und deren Bedeutung auf.

Beim Leuchten, einem Glüheffekt, können Sie die Farbe nicht unmittelbar auswählen. Stattdessen gibt der zugewiesene Wert eine Kombination von einer der sechs möglichen Farben und dem Radius wieder:

Me!cmdText.Glow = 1 'Blau; 5 pt.

Me!cmdText.Glow = 13 'Blau; 11 pt.

Me!cmdText.Glow = 2 'Rot; 5 pt.

Me!cmdText.Glow = 20 'Rot; 18 pt.

Für die Weichen Kanten gibt es Einstellungen, die zwischen 0 für Keine und 6 für maximal (50 pt.) liegen können:

Me!cmdTest.SoftEdges = 3 'Radius 5 pt.

Einen Hintergrundverlauf erzeugen Sie über die Einstellung Gradient:

Me!cmdTest.Gradient = 6 'Verlauf von

links nach rechts aufhellend

Hier reichen die Werte von 0 für Kein Verlauf bis 26.

Auch die Form eines Buttons kann dynamisch verändert werden:

Me!cmdTest.Shape = 9

Damit erscheint die Schaltfläche als 3D-Ellipse. Mit 1 sehen Sie einen abgerundeten Button, mit 0 das reguläre Layout.

Farben

Nehmen Sie die Hintergrundfarbe eines Buttons. Sie stellen Sie gewöhnlich über die Eigenschaft BackColor ein und können dieser einen RGB-Wert zuweisen:

Sie haben das Ende des frei verfügbaren Teil dieses Artikels erreicht!

Wenn Sie mehr lesen und auf viele weitere Artikel zugreifen möchten, melden Sie sich als Abonnent unter Login an. Falls nicht, bestellen Sie doch einfach ein Jahresabonnement!