infobase: EDV - MS-Access


Makros

per Code aufrufen   Quelle: dmt   Datum: 03.2004   nach oben

Access kann auch mittels CODE MAKROS aufrufen !

Nur ist davon natürlich unter so abwegigen Such-Einträgen wie 'Makros:Aufrufen' nichts zu finden. Nur wer zufällig das Makromodul öffnet, als Aktion 'AusführenMakro' wählt und dann in der Option 'Makroname' Hilfe anfordert, erfährt, daß es zum eingedeutschen Makro-'Programmiersprachen'-Befehl 'MakroAusführen' auch ein Pendant gibt, daß innerhalb von Access-Basic verwendet werden kann: nämlich die Aktion 'DoCmd RunMacro Makroname"'.

Allgemein gesprochen könnte man sagen, 'Wer sucht, der findet', aber wenn Windows im Spiel ist, muß es heißen 'Nur wer's aufgegeben hat und trotzdem weitermacht ...'.

Obwohl ich es für stillos halte, in Access mit Makros zu 'programmieren', konnte ich bereits mehrfach Probleme mit Makros vereinfachend anpacken. Mehrere thematisch zusammen-hängende Makroaktionen können bei Vergabe von Makro-Element-Namen einzeln benannt und in einem (Gruppen-)Makro gespeichert werden. Der Aufruf per Code erfolgt dann quasi objektorientiert nach dem Schema 'DoCmd RunMacro "Makroname.Elementname"'.

* * * *

Access kann auch mittels MAKROS CODE aufrufen !

Was in Basic gemäß meines Wissenstandes nicht realisiert werden kann, ist der variablisierte Aufruf von Routinen im Code. Eine Funktion a'la 'DoCmd RunCode "Funktionsname"' würde das Problem lösen und damit bestimmt auch eine Türe in Richtung 'automodifizierender Code' aufstoßen. Die Möglichkeit hierzu besteht aber trotzdem. Natürlich ist sie nicht dokumentiert und wird obendrein von mir an dieser Stelle auch ausdrücklich NICHT empfohlen. Schließlich habe ich jahrelang ERFOLGREICH die Finger von diesen Sachen gelassen.

In MSysMacros können auch Makroelemente gefunden werden, die die Makroaktion 'AusführenCode' beinhaltet sowie den Namen der auszuführenden Access-Basic-Funktion. Es besteht zumindest theoretisch die Möglichkeit, per Code eigene Datensätze anzulegen, die Makros sowie Makroelemente und deren Aktionen darstellen und die per Basic mit 'DoCmd RunMacro "Makroname.Elementname"' aufgerufen werden können. Auf diese Weise könnten variablisierbare Codeaufrufe erfolgen.
Allerdings gibt es in der Tabelle MSysObjects jeweils einen zum Makrodatensatz korrespondierenden Eintrag ohne nachvollziehbare Funktionalitäten.

Weitere Infos zum Aufbau der Tabelle MSysMacros im folgenden Abschnitt.


Tastaturbelegung   Datum: 08.2010   nach oben

Makros und Tastaturbelegung:

"Tastaturbelegung" ist der deutschsprachige Standardname für ein Makro, das für eine Access-Anwendung anwendungsweite Tastaturbelegungen speichern kann. Dieser kann geändert werden im Menü-Dialog Ansicht/Optionen/Kategorie/Tastatur.

Auch bei diesem Thema zeigt sich wieder mal, daß Makros selten eine vernünftige Lösung darstellen.

Soll in Access 2 eine Tastaturbelegung in dem entsprechenden Makro hinterlegt werden, wird im Feld Name das Tastaturkürzel angegeben. Auch wenn die Möglichkeiten weitgehend an die Sendkeys-Funktionalitäten angelehnt sind, gibt es auch hier Makro-typische Einschränkungen und Unzulänglichkeiten.

Am auffälligsten war für mich das Fehlen der Möglichkeit, das Drücken der Alt-Taste zu erfassen.

Das wollte nur über das VisualBasic-Ereignis OnKeyDown gelingen.

nach oben
zur Startseite dieses Webangebotes zur infobase-Hauptseite