Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

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 Datenbank

Die 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.

© 2003-2010 André Minhorst Alle Rechte vorbehalten.