Makros: Fortgeschrittene Techniken

Zusammenfassung

Lernen Sie fortgeschrittene Techniken mit Makros kennen.

Techniken

Makros

Voraussetzungen

Access 97 und höher

Beispieldatenbank

Makros97.mdb, Makros00.mdb

Martin Hoffmann, Düsseldorf

Nach den Grundlagen im ersten Teil dieser Beitragsreihe legen Sie nun richtig los: Am Beispiel eines Formulars zur Eingabe von Kundendaten erfahren Sie, wie Sie Makros verschiedenen Ereignissen zuweisen, wie Sie Bedingungen in Makros unterbringen und wie Sie die Befehle eines Makros auf mehrere Makros aufteilen.

Eine wichtige Aufgabe von Makros ist das Auslesen und Verändern von Feldinhalten. Auf diese Weise können Werte kopiert, initialisiert oder umgewandelt werden.

Im folgenden Beispiel erstellen Sie ein Makro, welches im Kundenformular frmKunden die Telefonnummer kopiert und diese dann im Feld Telefaxnummer speichert.

Dadurch ersparen Sie sich die erneute Eingabe der in vielen Fällen gleichen Nummer für Telefon und Fax. Ein Klick auf die Schaltfläche genügt.

Verweise auf Steuerelemente

Um innerhalb eines Makros den Inhalt des Feldes Telefonnummer auslesen zu können, müssen Sie einen Verweis auf dieses Steuerelement erstellen. Die Syntax eines solchen Verweises lautet in der Kurzform:

Formulare!<Formularname>!<Steuerelementname>

Diesen vollständigen Verweis müssen Sie angeben, wenn Sie von außerhalb des Formulars auf Steuerelemente zugreifen möchten. Im Beispiel soll die Schaltfläche zum Kopieren der Telefonnummer jedoch im Kundenformular platziert werden. Es reicht deshalb aus, den Namen des Steuerelements anzugeben. Als Formularname wird automatisch das Formular eingesetzt, von dem aus das Makro aufgerufen wird. Der Verweis lautet also lediglich:

<Steuerelementname>

Erstellen der Schaltfläche

Im Abschnitt Erstellen eines Hauptmenüs des ersten Teils dieser Beitragsreihe (s. Shortlink 373) haben Sie zunächst ein Makro und anschließend per Drag-and-Drop die entsprechende Schaltfläche im Formular angelegt. Zum Erstellen der Schaltfläche im Kundenformular gehen Sie den umgekehrten Weg.

Abb. 1: Legen Sie eine Befehlsschaltfläche für das Makro an.

Sie fügen zuerst die Schaltfläche in das Formular ein und anschließend legen Sie über den Makro-Editor die Aktionen fest.

öffnen Sie das Kundenformular in der Entwurfsansicht. Das Formular enthält ein Register, in dem die Kundendaten übersichtlich gruppiert sind.

Im zweiten Registerblatt finden Sie die Telefon- und Telefaxnummer. Hier ist der richtige Platz für die Schaltfläche. Klicken Sie auf das Register Kommunikation, um es zu aktivieren und die Steuerelemente sichtbar zu machen.

öffnen Sie nun die Toolbox über das gleichnamige Symbol in der Symbolleiste und legen Sie im Register eine neue Befehlsschaltfläche rechts neben der Telefaxnummer an (s. Abb. 1).

Geben Sie nun der Befehlsschaltfläche im Eigenschaftsfenster den Namen btnTelefonübernehmen. Als Beschriftung tragen Sie Telefonnummer übernehmen ein.

Anlegen des Makros

Die Telefonnummer soll bei einem Klick auf die Schaltfläche in das Telefaxfeld kopiert werden.

Sie benötigen also eine Verknüpfung des Makros mit der Eigenschaft Beim Klicken der Schaltfläche. Aktivieren Sie im Eigenschaftsfenster der Schaltfläche das Register Ereignis und klicken Sie auf die Editor-Schaltfläche rechts neben der Eigenschaft Beim Klicken (s. Abb. 2).

Im folgenden Dialog wählen Sie den Makro-Generator aus der Liste und bestätigen mit OK (s. Abb. 3).

Access öffnet dann sofort ein neues, leeres Makrofenster und fordert Sie zur Eingabe eines Namens auf, unter dem es das Makro speichert. Geben Sie den Namen makTelefonübernehmen ein.

Abb. 2: So rufen Sie den Dialog zur Auswahl des Makro-Generators auf.

Abb. 3: Wählen Sie den Generator aus.

Eingeben der benötigten Aktionen

Das Makro ist jetzt für die Eingabe der Aktionen bereit. Da Sie den Inhalt des Feldes Telefaxnummer verändern müssen, ist die erste Aktion die SetzenWert-Aktion. Damit weisen Sie einem Feld einen Ausdruck zu. Dies kann eine Berechnung, eine fester Wert oder wie in diesem Fall der Inhalt eines anderen Feldes sein.

Abb. 4: Kopieren Sie Daten mit der SetzenWert-Aktion.

Abb. 5: Sie aktualisieren Felder mit der Aktion AktualisierenDaten.

Abb. 6: So funktioniert das übernehmen der Telefonnummer per Knopfdruck.

Wählen Sie die SetzenWert-Aktion aus der Liste aus und tragen Sie im Argument Feld den Ausdruck TelefaxGeschäftlich ein.

Da Sie das Makro vom Formular Kunden aus aufrufen, bezieht sich der relative Verweis auf das Steuerelement dieses Formulars. Würde die Schaltfläche beispielsweise in einem anderen Formular liegen, müssten Sie den vollständigen Ausdruck Formulare!frmKunden!TelefaxGeschäftlich angeben.

Hinweis

Achten Sie bei der Eingabe von Feldnamen in Ausdrücken darauf, dass diese in eckige Klammern gesetzt werden müssen, wenn sie Sonderzeichen enthalten. Zum Beispiel werden [Kunden-Nr] oder [Kunden Nummer] ohne eckige Klammern von Access nicht oder falsch interpretiert. In der Beispieldatenbank Makros.mdb kommen deshalb in keinem Feldnamen Sonderzeichen vor – ein Problem weniger, auf das Sie achten müssen. Außerdem setzt Access Feldnamen ohne Sonderzeichen automatisch in eckige Klammern, wie in Abb. 4 zu sehen ist.

Der Wert, den das Feld erhalten soll, steht im Steuerelement TelefonGeschäftlich des gleichen Formulars. Geben Sie diesen Namen im Parameter Ausdruck an.

Damit nach dem Kopieren der neue Inhalt des Feldes TelefaxGeschäftlich sichtbar wird, müssen Sie das Feld noch aktualisieren. Dies geschieht mit der Aktion AktualisierenDaten. Als Steuerelementnamen tragen Sie im gleichnamigen Aktionsargument TelefaxGeschäftlich ein (s. Abb. 5).

Sichern Sie die änderungen am Makro mit dem Menübefehl Datei/Speichern. Beim Schließen des Makros trägt Access automatisch den zuvor gegebenen Makronamen in der Eigenschaft BeimKlicken der Schaltfläche ein.

Um die neue Funktion auszuprobieren, wechseln Sie in die Formularansicht und aktivieren das Register Kommunikation. Legen Sie zu Testzwecken einen neuen Kunden an und geben Sie eine Telefonnummer ein. Klicken Sie anschließend auf die Schaltfläche Telefonnummer übernehmen. Die Telefonnummer erscheint dann im Feld Telefax geschäftlich (s. Abb. 6).

Abb. 7: Die Spalte Bedingung wird eingeblendet.

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

Workplace

Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar