Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
Autor: André Minhorst, Duisburg
Steuerelemente sind in der Regel recht individuell. Sie unterscheiden sich im Namen, in der Bezeichnung, im Aussehen und wahrscheinlich durch die für unterschiedliche Ereignisse hinterlegten Prozeduren voneinander. Daher werden sie in der Regel manuell angelegt und die Eigenschaften wie gewünscht eingestellt. Manchmal werden allerdings Steuerelemente in größeren Mengen benötigt, die sich noch dazu nur unwesentlich voneinander unterscheiden. Im vorliegenden Beitrag lernen Sie, wie Sie ein Formular oder einen Bericht schnell mit den benötigten Steuerelementen füllen, anstatt diese Aufgabe von Hand zu erledigen.
Wenn Sie z. B. einmal die Musterlösung zum Thema Projektverwaltung der vorliegenden Ausgabe von „Access im Unternehmen“ betrachten, dann fallen Ihnen sicher die Mengen von Bezeichnungsfeldern ins Auge, die – unterschiedlich eingefärbt – die Dauer von Projekten und deren Phasen anzeigen (siehe Bild 1).
Bild 1: Eine Projektverwaltung erfordert die Verwendung einiger Steuerelemente.
Jedes dieser Bezeichnungsfelder hat einige genau festgelegte Eigenschaften. So ist z. B. die Größe genau definiert.
Aus der Größe leitet sich wiederum die Position eines jeden Bezeichnungsfeldes ab, da diese genau auf einer Höhe und exakt nebeneinander liegen sollen.
Schon das exakte Positionieren von 28 Steuerelementen je Reihe ist eine unangenehme Arbeit. Und richtig leidig wird es, wenn Sie feststellen, dass die Bezeichnungsfelder alle etwas zu schmal sind – und Sie alle auf die neue Größe und die neue Position bringen müssen.
Da ja möglicherweise – wie auch in der Projektverwaltung – auf die Bezeichnungsfelder zugegriffen werden soll, um beispielsweise deren Hintergrundfarbe zu ändern, sollten Sie allen Bezeichnungsfeldern auch einen sinnvollen Namen zuweisen – z. B. lblDatum01, lblDatum02, usw.
Spätestens an dieser Stelle erfährt der vorliegende Bericht seine Daseinsberechtigung, denn das ständige Hin und Her zwischen dem Markieren des Steuerelements und dem ändern des Bezeichnungsfeldnamens ist sehr aufwendig.
Für die Erstellung eines Steuerelementes verwenden Sie – je nachdem, ob Sie das Steuerelement in einem Formular oder in einem Bericht erstellen möchten – die Funktion CreateControl oder CreateReportControl.
Beide Funktionen haben nahezu identische Parameter, sodass diese in einem Zug erläutert werden können. Die Syntax der Anweisung hat folgendes Aussehen:
CreateControl(Formularname, _ Steuerelementtyp[, Bereich[, _ Hauptobjekt[, Spaltenname[, Links[, _ Oben[, Breite[, Höhe]]]]]]])
Die Parameter in den eckigen Klammern sind optional und müssen nicht angegeben werden.
Für den Parameter Formularname übergeben Sie der Funktion den Namen des Formulars oder Berichts, z. B. „frmProjekte“. Mit Steuerelementtyp geben Sie die Art des Steuerelements an. Eine Aufstellung der möglichen Werte finden Sie in Tab. 1.
Als Wert für den Parameter Bereich erwartet die Funktion einen Wert wie z. B. Detailbereich (acDetail), Formular- oder Berichtskopf/-fuß (acHeader, acFooter), Seitenkopf (acPageHeader), Seitenfuß (acPageFooter) usw. Mit diesem Wert geben Sie an, in welchem Bereich das Steuerelement erstellt werden soll.
Für den Parameter Hauptobjekt geben Sie den Namen eines übergeordneten Steuerelementes an. Im Falle eines Bezeichnungsfeldes können Sie hier beispielsweise den Namen eines Textfeldes angeben, an das Sie das Bezeichnungsfeld binden möchten. Wenn das Feld Daten enthält und an ein Feld der Datenherkunft gebunden werden soll, geben Sie für den Parameter Spaltenname den gewünschten Feldnamen an.
Schließlich fehlen noch die Position und die Größe, die mit den Parametern Links, Oben, Breite und Höhe übergeben werden.
Steuerelement |
Konstante |
Bezeichnungsfeld |
acLabel |
Rechteck |
acRectangle |
Linie |
acLine |
Bild |
acImage |
Befehlsschaltfläche |
acCommandButton |
Optionsfeld |
acOptionButton |
Kontrollkästchen |
acCheckBox |
Optionsgruppe |
acOptionGroup |
Gebundenes Objektfeld |
acBoundObjectFrame |
Textfeld |
acTextBox |
Listenfeld |
acListBox |
Kombinationsfeld |
acComboBox |
Unterformular |
acSubform |
Objektfeld |
acObjectFrame |
Seite |
acPage |
Seitenumbruch |
acPageBreak |
ActiveX-Steuerelement |
acCustomControl |
Umschaltfläche |
acToggleButton |
Register-Steuerelement |
acTabCtl |
Tab. 1: Steuerelemente und deren Konstanten
Nachdem Sie nun den theoretischen Hintergrund haben, beginnen Sie direkt mit dem Anlegen von Steuerelementen via VBA-Prozedur. Sie lernen zunächst, wie Sie ein einfaches Textfeld anlegen, und erstellen anschließend ein an das Textfeld gebundenes Bezeichnungsfeld.
Anlegen eines Textfeldes
Nach der Theorie folgt nun die Praxis: Mit einer kleinen Prozedur legen Sie ein erstes Textfeld in einem leeren Formular an.
Anlegen eines Formulars
Zunächst einmal müssen Sie jedoch das Formular anlegen und es unter dem gewünschten Namen speichern – z. B. unter frmBeispiel.
Anlegen eines Moduls
Für die Prozedur zum Anlegen des Steuerelementes legen Sie außerdem ein neues Modul namens mdlBeispiel an.
Hinweis
Die für die Angabe von Position und Größe verwendeten Parameter erwarten Werte der Einheit Twips. 567 Twips entsprechen einem Zentimeter. Um ein besseres Gefühl für diese Einheit zu bekommen, können Sie auch Ausdrücke wie z. B. 567*2.5 verwenden. Der genannte Ausdruck entspricht einer Länge von 2,5 cm.
Prozedur zum Erstellen eines Textfeldes
Public Sub TextfeldErstellen(Formularname As String) DoCmd.OpenForm Formularname, acDesign CreateControl Formularname, acTextBox, acDetail, , _ , 567 * 3, 567, 567 * 3, 567 * 0.5 End Sub
Quellcode 2
Die Prozedur aus Quellcode 1 erstellt ein Textfeld wie in Bild 2. Um die Prozedur auszuprobieren, rufen Sie diese im Testfenster auf. Das Testfenster aktivieren Sie mit der Tastenkombination Strg + G. Dort geben Sie einfach den Prozeduraufruf SteuerelementErstellen ein und führen ihn durch Betätigen der Eingabetaste aus.
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
Testzugang
eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel
diesen und alle anderen Artikel mit dem Jahresabo