Neben den eingebauten Formularen und Steuerelementen gibt es noch eine weitere Bibliothek, die einen eigenen Formulartyp und einige bereits bekannte sowie einige neue Steuer-elemente liefert. Dabei handelt es sich um die MSForms-Bibliothek, welche das UserForm-Formular sowie besagte Steuer-elemente bereithält. Die Elemente dieser Bibliothek bringen einige Vorteile gegenüber den eingebauten Elementen, aber es ist hier und da auch mehr Aufwand zu betreiben, um die gewohnten Funktionen nachzubilden. Deshalb wollen wir die Elemente für Aufgaben nutzen, wo wir mit Bordmitteln nicht weiterkommen. Welche das sind und wie die Umsetzung aussieht, zeigt der vorliegende Artikel.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 1905_MSForms.accdb.
Die MSForms-Bibliothek
In einer Standard-Accessdatenbank finden Sie die Elemente der MSForms-Bibliothek am ehesten, wenn Sie ein ein Formular in der Entwurfsansicht öffnen und dann die Liste der ActiveX-Steuerelemente über den Ribbon-Eintrag Entwurf|Steuerelemente|ActiveX-Steuerelemente anzeigen (siehe Bild 1). Hier finden Sie dann viele Steuer-elemente, die Ihnen bekannt vorkommen, weil Sie diese bereits als eingebaute Access-Steuerelemente erkennen – zum Beispiel CheckBox, ComboBox, CommandButton und so weiter.
Bild 1: Liste der in Access verfügbaren MSForms-Steuerelemente
Möglichkeiten der MSForms-Steuerelemente
Die Steuer-elemente haben teilweise andere Eigenschaften und Möglichkeiten als die üblichen Access-Steuerelemente. Welche das sind, schauen wir uns im Detail in eigenen Artikeln zu den einzelnen Steuerelementen an.
In diesem Artikel betrachten wir zunächst, welche Möglichkeiten diese Steuer-elemente und das bisher noch nicht erwähnte UserForm-Element bieten.
Vorab noch die Information, dass diese Steuer-elemente überall zur Verfügung stehen, wo Access oder die Access Runtime installiert sind. Sie brauchen sich also keine Sorgen zu machen, dass es zu Problemen mit Verweisen oder falschen Steuerelementversionen kommt – ähnlich wie bei Elementen der MSComCtl-Sammlung wie TreeView, ListView und so weiter.
Das UserForm-Element
Wer von Excel oder Word kommt und dort bereits Benutzeroberflächen programmiert hat, kennt das UserForm-Element bereits. Es handelt sich dabei um eine Möglichkeit, Excel, Word und die anderen Office-Anwendungen mit Elementen für die Benutzeroberfläche auszustatten – beispielsweise, um Daten vom Benutzer abzufragen.
Dabei kann es sich um ein Eingabeformular für die Adressangabe eines Anschreibens handeln, mit dem der Benutzer die Daten komfortabel eingeben kann und sich nicht um die Platzierung der Informationen im zu erstellenden Word-Dokument kümmern muss. Oder Sie fügen einem Excel-Dokument ein UserForm-Element hinzu, mit dem der Benutzer Daten auswählen soll, die dem Excel-Dokument hinzugefügt werden sollen.
UserForms in Word oder Excel
Natürlich können Sie ein solches Formular auch dazu nutzen, die Daten einer Access-Datenbank in einem Word- oder Excel-Dokument anzubieten – zum Beispiel, um in Word Adressdaten aus einer Kundendatenbank in ein Anschreiben zu übernehmen oder um in Excel eine Kalkulation auf Basis von Daten aus der Datenbank zu erstellen.
UserForm-Elemente in Access
Und schließlich können Sie das UserForm-Element auch zu einer Access-Anwendung hinzufügen.
Warum sollten Sie das tun, wenn es doch Access-eigene Formulare gibt, die sogar sehr einfache Möglichkeiten der Datenbindung mitliefern und Sie die Steuer-elemente der MSForms-Bibliothek offensichtlich auch in herkömmliche Access-Formulare integrieren können
Warum UserForms in Access
Access-Formulare sind relativ resourcenhungrig – wegen der Eigenschaften zur Anzeige von Daten et cetera. Eine UserForm ist standardmäßig gar nicht dafür vorgesehen, an die Daten einer Tabelle oder Abfrage gebunden zu werden und kommt entsprechend leichter daher.
Außerdem funktionieren die Steuer-elemente der MSForms-Bibliothek zwar auch in Access-Formularen, zuverlässiger tun sie ihren Dienst jedoch in UserForms. Und schließlich können Sie in UserForms zur Laufzeit Steuer-elemente anlegen – das ist in Access-Formularen nur zur Entwurfszeit möglich.
Auch wenn Sie ein Access-Formular per Code in den Entwurfsmodus versetzen und dann Steuer-elemente hinzufügen können, stoßen Sie an die Grenzen, wenn Sie die Datenbank als .mde oder .accde weitergeben wollen – dort gibt es nämlich keine Entwurfsansicht mehr.
Allerdings haben UserForms auch Nachteile gegenüber Access-Formularen: Diese bieten nämlich schon von Haus aus alle Möglichkeiten zur Datenbindung.UserForms bieten diese Möglichkeit gar nicht an, Steuer-elemente müssten hier zur Laufzeit mit den gewünschten Daten gefüllt werden.
UserForm in Access anlegen
Wenn Sie ein UserForm-Element in Access anlegen wollen, so wie Sie es vielleicht von Excel oder Word gewohnt sind, haben Sie zunächst keinen Erfolg.
Im VBA-Editor von Word etwa finden Sie den passenden Eintrag im Menü unter Einfügen|UserForm (siehe Bild 2).
Bild 2: Einfügen eines UserForm-Elements im VBA-Editor von Word
Das ist im VBA-Editor von Access nicht der Fall: Hier fehlt dieser Eintrag schlicht und einfach.
Wie aber sollen wir nun eine UserForm zu unserem Projekt hinzufügen Dazu betätigen Sie zunächst den Eintrag Anpassen des Kontextmenüs der Menüleiste (siehe Bild 3).
Bild 3: Aufrufen des Anpassen-Dialogs
Dort wechseln Sie dann zum Registerreiter Befehle und wählen im linken Listenfeld den Eintrag Einfügen. Rechts erscheinen dann alle für diese Kategorie verfügbaren Befehle, unter anderem auch UserForm.
Diesen ziehen wir dann per Drag and Drop erst auf den Menüeintrag Einfügen und dann im nun erscheinenden Untermenü an die gewünschte Stelle (siehe Bild 4). Fragen Sie nicht, warum dieser Eintrag nicht standardmäßig auch in Access vorhanden ist …
Bild 4: Hinzufügen des Eintrags UserForm zum Einfügen-Menü
Wenn wir diesen Menüeintrag danach betätigen, erscheint auch direkt das UserForm-Element mit dem Namen UserForm1 in der Entwurfsansicht im VBA-Editor. Dazu erscheint eine Toolsammlung mit den Steuerelementen der MSForms-Bibliothek (siehe Bild 5). Im Projekt-Explorer erscheint der Eintrag für das neue UserForm-Element in einem neuen Unterbereich namens Formulare.
Bild 5: Anlegen einer UserForm
UserForm umbenennen
Um eine UserForm umzubenennen, können Sie das Eigenschaftenfenster des UserForm-Elements verwenden. Dieses bietet im Gegensatz zu den Eigenschaften von Access-Objekten sogar die Möglichkeit, die Eigenschaften nach Kategorien anzuzeigen (siehe Bild 6).
Bild 6: Eigenschaften einer UserForm
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: