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

Autoexec per Verknpfung umgehen

Whrend der Entwicklung einer Anwendung mchte man die in einem AutoExec-Makro gelegentlich umgehen, um bestimmte fr den Livebetrieb ntige Funktionen zu unterbinden. Dies funktioniert durch Drcken der Umschalttaste beim ffnen der Datenbank - es gibt aber auch noch einen anderen Weg.

Autoexec

Das Autoexec-Makro wird bekanntlich beim Start einer Access-Anwendung ausgelst. Damit lassen sich etwa Routinen aufrufen, Formulare und Berichte ffnen und mehr. Whrend der Entwicklung kann dies aber manchmal recht unpraktisch sein, weshalb man die Ausfhrung des AutoExec-Makros beim Starten durch Drcken der Umschalttaste unterbindet. Wenn Sie dies aber ebenfalls unterbinden, indem Sie die Datenbank-Property AllowBypassKey erzeugen und auf False setzen (mehr dazu auf http://www.donkarl.com in der Access-FAQ unter Punkt 1.8).

Aber auch hier gibt es einen Trick, um die Datenbank zu ffnen, ohne die unerwnschten Befehle im AutoExec-Makro auszufhren - wenn man auch das Ausfhren dieses Makros nicht komplett unterbinden kann.

Startkommando

Der Clou ist der cmd-Parameter, den man einer Verknpfung fr das ffnen einer Access-Datenbank mitgeben kann. Eine solche Verknpfung sieht wie folgt aus:

"C:\Programme\Microsoft Office\OFFICE11\MSACCESS.EXE" "C:\StopAutoexec.mdb" /cmd stop

Den mit /cmd bergebenen Parameter kann man als Zeichenkette etwa in VBA mit der folgenden Funktion ausgeben oder verwenden:

Debug.Print Command

Aber, was viele nicht wissen (auer Karl Donaubauer, wie dieser Thread zeigt), ist die Tatsache, dass man auch von Makros aus auf den Wert dieses Parameters zugreifen kann. Wenn man diesen dann geschickt als Bedingung einsetzt und bei bergabe des richtigen Ausdrucks das Makro direkt in der ersten Zeile mit der StoppMakro-Aktion beendet, kann man die brigen Makroaktionen auslassen.

Das Makro sieht dann etwa so aus:

Abbildung 1: Dieses Autoexec-Makro wird in der ersten Zeile abgebrochen, wenn in der Verknpfung ein cmd-Parameter mit dem Wert Stop bergeben wird.

Bug in Access 2007?

In Access 2007, das nach vielen Access-Versionen die erste mit neuen Makro-Funktionen ist, funktioniert dies brigens nicht. Befehl() wird dort in Command() umgewandelt, was in der Folge zu einem Fehler fhrt. Mglicherweise ist dies ein Bug.

© 2003-2015 André Minhorst Alle Rechte vorbehalten.