Hallo VBA-Freunde,
in meiner Access-Anwendung habe ich in einem Modul eine Sub. In der Sub steht folgende Anweisung (Bezeichner sind nur Beispiele).
StringText = NameDesKlassenmouls.NameDerFunktion
Die Anweisung ruft aus einem Klassenmodul eine Funktion auf und schreibt einen String in die Variable StringText zurück. Das funktioniert!
Meine Access-Anwendung besteht aus ungefähr 200 Formularen, Berichten, Modulen und Klassenmodulen. Über folgende Schleife kann ich nacheinander jedes Objekt ansprechen:
For Each obj In Application.VBE.ActiveVBProject.VBComponents
Next obj
Das Objekt liefert mir den Typ und den Namen des Objekts.
In der Schleife möchte ich nun die Anweisung von oben einbauen. Den festen Namen des Objekts (im Beispiel NameDesKlassenmoduls) und den festen Funktionennamen (hier NameDerFunktion) möchte ich in der Schleife durch den Objektnamen ersetzen. Leider weiß ich nicht, ob dies überhaupt möglich ist, da sämtliche Versuche scheiterten.
Ein Beispiel in der Schleife hatte ich über Eval:
StringText = Eval(obj.Name) & “.” & Eval(obj.Name) & “_abc”
Der Name der Funktion ist gleich dem Namen im Klassenmodul und endet mit einem Suffix (hier abc).
Auch ein „Set Object“ und andere Versuche scheiterten, entweder gab es einen Compilerfehler oder die Funktion wurde im Klassenmodul oder im Formular nicht gefunden.
Frage: Kann man einen festen Objektnamen und einen festen Funktionsnamen im Quellcode, was bei mir funktioniert, durch Variablennamen ersetzen?
Gruß Jörn
|