Programmierhelfer

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Die VBA-Entwicklungsumgebung ist keine Offenbarung, was den Funktionsumfang angeht. Dabei gibt es so viele Möglichkeiten, dem Entwickler Aufgaben abzunehmen. Im vorliegenden Beitrag zeigt Access im Unternehmen, wie Sie mit einer Tool-Sammlung namens MZ-Tools besseren Code produzieren können.

Download und Installation

Die MZ-Tools finden Sie auf der unter [1] angegebenen Internetseite. Die Tools gibt es in verschiedenen Ausführungen für unterschiedliche Entwicklungsumgebungen, unter anderem auch für Visual Studio .NET. Für die Installation bringt MZ-Tools eine Setup-Anwendung mit. Wenn der VBA-Editor beim Installieren geöffnet ist, müssen Sie Access zunächst schließen und wieder öffnen, um mit dem Tool zu arbeiten. Dann erst erscheint die Benutzeroberfläche des Tools in Form einer eigenen Symbolleiste. Alternativ zur Symbolleiste können Sie alle Anweisungen auch über den Menüeintrag Extras/MZ-Tools oder über das Kontextmenü diverser Elemente aufrufen. Im Folgenden werden bei der Beschreibung der Funktionen die dort beziehungsweise in den ToolTip-Texten genannten Bezeichnungen verwendet.

Aktion sauberer Code

Der erste Schwung nützlicher Funktionen dient dazu, den Code sauber zu halten. Sauber zu halten Nun, große Projekte neigen dazu, mit der Zeit eine Reihe nicht mehr benutzter Routinen oder Variablen anzusammeln. Und hier liegt eine der Stärken von MZ-Tools, denn es bringt direkt zwei Funktionen für das Säubern des Codes von nicht mehr benötigten Fragmenten mit.

Die erste Funktion heißt Prozeduraufrufe. Sie können mit dieser Funktion feststellen, ob eine bestimmte Routine irgendwo im Code aufgerufen wird. Dazu platzieren Sie einfach die Einfügemarke auf die zu untersuchende Routine und wählen die Funktion Prozeduraufrufe aus.

MZ-Tools blendet dann einen Dialog ein, der den genauen Pfad aller Aufrufe anzeigt (siehe Bild 1). Im Beispiel erfolgt der Aufruf als Methode der Klasse, in der sich die Routine befindet, und die wiederum wird aus einem Formular heraus aufgerufen.

pic001.tif

Bild 1: Untersuchung einer Funktion auf ihre Aufrufe von anderen Stellen

Wenn Sie diese Untersuchung mit einer Funktion durchführen, die von keiner anderen Stelle aus aufgerufen wird, bleibt der Dialog leer und Sie können die Routine – sofern Ihnen kein weiterer Verwendungszweck einfällt – löschen.

Eines müssen Sie allerdings beim Einsatz dieser Funktion berücksichtigen: Sie prüft nicht, ob eine Routine direkt von einem der Access-Objekte aufgerufen wird, also beispielsweise als Funktion innerhalb einer Abfrage oder als Wert einer Ereigniseigenschaft. Kommentieren Sie scheinbar überflüssige Routinen also am besten zunächst aus und löschen Sie diese, wenn nach einer gewissen Zeit kein Fehler erscheint …

Die zweite in diesem Zusammenhang interessante Funktion untersucht die Variablen des gesamten Projekts dahingehend, ob diese überhaupt verwendet werden. Die Funktion erreichen Sie über den Menüeintrag Andere Hilfsmittel/Übersicht: Programmcode. Bild 2 zeigt, was diese Funktion leistet: Sie zeigt alle deklarierten, aber nicht verwendeten Elemente aller Module an. Auch hier gibt es eine Einschränkung: Die Funktion berücksichtigt – laut Onlinehilfe – nur die als Private deklarierten Elemente. Trotzdem ist diese Funktion eine gute Hilfe, um Variablenleichen aufzufinden und zu löschen.

pic002.tif

Bild 2: Die Programmcode-Übersicht bringt unter anderem deklarierte und nicht verwendete Variablen ans Tageslicht.

Prozeduren sortieren

In Zusammenhang mit “sauberem Code” ist auch die Funktion zum Sortieren der Prozeduren interessant. Diese zeigt alle enthaltenen Elemente in einem Dialog mit einer Listbox an, deren Einträge Sie durch Drag and Drop verschieben können. Die änderungen werden nach dem Schließen des Dialogs im Modul nachgezogen.

Suche mit Übersicht

Sehr hilfreich ist die Suchfunktion, die sich auf den ersten Blick gar nicht so sehr von der Standardsuche unterscheidet. Interessant wird es erst bei der Anzeige der Suchergebnisse: Hier zeigt MZ-Tools eine Liste mit den Modulen, Routinen und den relevanten Codezeilen an, von der aus Sie die passenden Routinen per Doppelklick im Codefenster anzeigen lassen können (siehe Bild 3).

pic003.tif

Bild 3: Die Suchfunktion liefert die Ergebnisse nicht nacheinander, sondern in einer Ergebnisliste.

Die Suchfunktion bietet gleichzeitig die Möglichkeit, den Suchbegriff in einem oder in allen Modulen durch einen alternativen Ausdruck zu ersetzen. Dazu geben Sie einfach den gewünschten Begriff in den Dialog ein und klicken auf Ersetzen oder Alle ersetzen.

Prozedur-Assistent

Wer noch unsicher beim Erstellen von Prozeduren unterschiedlicher Art ist, kann den Prozedur-Assistenten dazu einsetzen (siehe Bild 4). Interessant sind die Funktionen, die das automatische Hinzufügen eines Prozedurkopfes mit Informationen zu der Prozedur und einer Fehlerbehandlung erlauben. Diese beiden Funktionen gibt es auch einzeln, sodass diese weiter unten beschrieben werden.

pic004.tif

Bild 4: Hinzufügen von Prozeduren per Assistent

Interessant ist, dass Sie die Prozedurvorlagen anpassen können: Öffnen Sie einmal den Optionen-Dialog und wechseln Sie auf die Registerseite Namensgebung. Hier können Sie sowohl die Suffixe für Ergebnisvariablen und Membervariablen als auch für die Typenpräfixe festlegen.

Code-Vorlagen

Wer viel programmiert, hat vermutlich einen ganzen Rutsch von Standardfunktionen oder Codeschnipseln, die er regelmäßig verwendet. Diese können Sie mit MZ-Tools einfach verwalten und in das aktuelle Modul einfügen.

Legen Sie also zunächst ein Code-Template an – hier eine oft verwendete Funktion zum Umwandeln von Datumsangaben in SQL-taugliche Datumsausdrücke. Die Funktion sieht so aus:

Public Function SQLDatum(varDate As Variant)
    SQLDatum = Format(varDate, _
    "\#yyyy\-mm\-dd\#")
End Function

Zunächst speichern Sie diesen Codeschnipsel. Dazu öffnen Sie den Optionen-Dialog von MZ-Tools und wechseln dort zur Registerseite Code-Vorlagen. Klicken Sie auf Hinzufügen und füllen Sie die Felder im nun erscheinenden Dialog beispielsweise wie in Bild 5 aus.

pic005.tif

Bild 5: Hinzufügen einer Codevorlage

Sie können dort auch eine Tastenkombination festlegen (hier Umschalt + Strg + D) und brauchen dann im betroffenen Modul einfach nur noch die Einfügemarke an die gewünschte Stelle zu setzen und die Tastenkombination auszuführen.

Wie Sie der Abbildung entnehmen können, enthält der Dialog auch die Möglichkeit, vordefinierte und benutzerdefinierte Variablen in den Codeschnipsel einzufügen. Die vordefinierten Variablen füllt MZ-Tools automatisch aus, die benutzerdefinierten fragt es beim Hinzufügen des Codeschnipsels ab. Wenn Sie also etwa eine For…Next-Schleife einfügen möchten, geben Sie nacheinander die drei benutzerdefinierten Variablen Laufvariable, Startwert und Endwert in das passende Feld ein und fügen diese jeweils in den Codeschnipsel ein, sodass dieser schließlich wie folgt aussieht:

For {Laufvariable} = {Startwert} to {Endwert}
    {I}
Next {Laufvariable}

Wenn Sie diesen dann beispielsweise mit der Tastenkombination Umschalt + Strg + F hinzufügen, zeigt MZ-Tools einen passenden Dialog zur Abfrage der benutzerdefinierten Variablen an und fügt die eingegebenen Werte direkt in den Ausdruck ein. So erzeugen Sie mit einer einfachen Tastenkombination und der Eingabe dreier Werte auf die Schnelle den Rumpf einer For…Next-Schleife. Der Ausdruck {I} ist übrigens eine vordefinierte Variable, die dafür sorgt, dass die Einfügemarke sich nach dem Hinzufügen des Codeschnipsels direkt innerhalb der For…Next-Schleife befindet.

Kleiner Tipp: Fügen Sie immer noch eine Leerzeile an den Codeschnipsel an, damit Sie diesen ohne Probleme auch einmal zwischen zwei direkt übereinanderliegende Zeilen einfügen können.

Private Zwischenablage

Gelegentlich kopieren Sie einen Ausdruck, um ihn an anderer Stelle wieder einzufügen. Dummerweise kommt manchmal ein anderer Kopiervorgang dazwischen und die Zwischenablage enthält nicht mehr das gewünschte Element. MZ-Tools sieht dafür eine private Zwischenablage vor, in der Sie bis zu neun Elemente speichern können.

Wenn Sie die private Zwischenablage einsetzen möchten, sollten Sie in den Optionen von MZ-Tools auf der Registerseite Tastaturkürzel passende Tastenkombinationen für das Belegen und Auslesen der einzelnen Speicherplätze festlegen (etwa Strg + 1, Strg + 2 … für das Einfügen und Alt + 1, Alt + 2 … für das Auslesen der Ablageplätze). Generell können Sie Tastenkombinationen für alle Befehle von MZ-Tools festlegen.

Modul- und Prozedurkopf

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

Schreibe einen Kommentar