Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
Wenn Sie Formulare und Steuerelemente programmieren wollen, müssen Sie wissen, wie Sie diese referenzieren. Nicht immer geschieht dies vom Klassenmodul des Formulars selbst aus – manchmal wollen Sie vielleicht auch von anderen Formularen auf die Steuer-elemente eines anderen Formulars zugreifen oder auch von einer VBA-Prozedur in eine Standardmodul. Dieser Artikel zeigt, wie Sie von verschiedenen Orten aus auf die Formulare zugreifen können. In weiteren Artikeln betrachten wir dann etwa den Zugriff auf die darin enthaltenen Steuer-elemente.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 1803_FormsControlsVBARead.accdb.
Innerhalb des Formulars
Wenn Sie ein Formular erstellen und diesem ein Klassenmodul zuweisen, das sogenannte Code behind-Modul, dann können Sie von diesem aus auf andere Weise auf die Elemente des Formulars zugreifen als dies etwa von einem anderen Formular oder auch von einem Standardmodul aus möglich ist.
Hier steht nämlich das Me-Schlüsselwort für den Zugriff auf die Objektvariable des aktuellen Formulars zur Verfügung. Zur Verdeutlichung legen Sie einfach einmal ein neues Formular in einer leeren Datenbank an und speichern dieses unter dem Namen frmBeispiel.
Diesem fügen wir nun eine Schaltfläche hinzu, die wir mit der Beschriftung Name anzeigen und dem Namen cmdNameAnzeigen versehen und für die wir eine neue Ereignisprozedur für das Ereignis Beim Klicken anlegen (siehe Bild 1).
Bild 1: Hinzufügen einer Ereignisprozedur für eine Schaltfläche
Der Ereignisprozedur fügen wir nun eine Anweisung hinzu, die den Namen des Formulars in einem Meldungsfenster ausgeben soll:
Private Sub cmdNameAnzeigen_Click() MsgBox Me.Name End Sub
Das hier wie selbstverständlich verwendete Schlüsselwort Me ist eine sehr praktische Vereinfachung für den Zugriff auf die Elemente des Formulars, auf das sich das Klassenmodul bezieht.
Mit diesem Schlüsselwort können Sie auf alle Eigenschaften und Methoden des Formulars zugreifen und auch auf die darin angelegten Steuer-elemente – darauf gehen wir später ein.
Von außen
Wie aber greifen wir denn eigentlich von außen auf dieses Formular zu Dazu müssen wir erst einmal wissen, ob das Formular geöffnet ist. Greifen wir auf ein Formular zu, das nicht geöffnet ist, erhalten wir einen Laufzeitfehler.
Um dies auszuprobieren, fügen Sie der Beispieldatenbank ein Standardmodul namens mdlFormularzugriff hinzu. Hier legen Sie die folgende Prozedur an:
Public Sub NameAnzeigen() MsgBox Forms!frmBeispiel.Name End Sub
Die Prozedur erledigt nichts anders als die im Formular für die Schaltfläche cmdNameAnzeigen – Sie gibt ein Meldungsfenster mit dem Namen des Formulars 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