Formularcode ausgebenÄnderungen an Tabellenfeldern und deren Eigenschaften ziehen in der Regel Anpassungen an verschiedenen Stellen nach sich. Dazu gehören die Abfragen, Formulare und Berichte sowie deren Steuerelemente und der VBA-Code in Modulen. Der vorliegende Beitrag beschreibt, wie Sie mit einer einfachen Funktion den Quellcode der Prozeduren aller Formular im Testfenster ausgeben können.

Die Funktion kann als Grundlage verwendet werden, um darin beispielsweise nach geänderten Feldnamen zu suchen und diese anzupassen. Dazu müssen allerdings noch einige Änderungen durchgeführt werden, da die vorliegende Funktion nur zur Ausgabe dient. Funktion zur Ausgabe der Prozeduren aller Formularmodule einer DatenbankDie folgende Funktion durchläuft alle Formular einer Datenbank. Dabei öffnet Sie die Formulare in der Entwurfsansicht, um deren Modul auszulesen und im Testfenster auszugeben.
Wichtig ist die Option acSaveNo in der DoCmd.Close-Anweisung. Wenn Sie das Modul eines Formulars auslesen und das Formular bis zu diesem Zeitpunkt noch kein Modul hat, wird ein neues angelegt. Die Option acSaveNo schließt Formular ohne Modul automatisch wieder, ohne die Änderungen im Code zu speichern.
Public Function CodeAusgebenFormular()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim mdl As Module
Set db = CurrentDb
Set rst = db.OpenRecordset("SELECT Name as Formularname FROM MSysObjects WHERE Type = -32768", dbOpenDynaset)
Do While Not rst.EOF
DoCmd.OpenForm rst!Formularname, acDesign
Set mdl = Forms(rst!Formularname).Module
Debug.Print mdl.Name
Debug.Print mdl.CountOfLines
Debug.Print mdl.Lines(1, mdl.CountOfLines)
Debug.Print "================================"
Set mdl = Nothing
DoCmd.Close acForm, rst!Formularname, acSaveNo
rst.MoveNext
Loop
End Function
Obige Funktion kann leicht für die Anwendung mit Berichten umgeschrieben werden. |