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.
Bild 1: Im Entwurfs-Ribbon finden Sie links die Abteilung zu Design-Elementen
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.
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.
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.
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.
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.
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.
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).
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
Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein: