Discussion:
Fehlerbehandlung für Makro AutoExec?
(zu alt für eine Antwort)
Wolfgang Kaiser
2007-11-26 15:04:43 UTC
Permalink
Hallo,

ich habe eine Access 2000 DB und finde es sehr ärgerlich, dass bei dem
kleinsten Fehler die AutoExec nicht ausgeführt wird, ohne dass dem
Anwender mitgeteilt wird, warum.

Gibt es eine Möglichkeit, die Fehler, die beim Ausführen der Autoexec
auftreten zu handeln?

Oder welche Alternativen gäbe es, mit denen man die Autoexec ersetzen
könnte?

Vielen Dank im Voraus,

viele Grüße

Wolfgang Kaiser
Henry Habermacher
2007-11-26 15:16:34 UTC
Permalink
Hallo Wolfgang
Post by Wolfgang Kaiser
ich habe eine Access 2000 DB und finde es sehr ärgerlich, dass bei dem
kleinsten Fehler die AutoExec nicht ausgeführt wird, ohne dass dem
Anwender mitgeteilt wird, warum.
Gibt es eine Möglichkeit, die Fehler, die beim Ausführen der Autoexec
auftreten zu handeln?
Kaum, da Access vor der Version 2007 keine eigentliche Fehlerbehandlung in
Makros kennt.
Post by Wolfgang Kaiser
Oder welche Alternativen gäbe es, mit denen man die Autoexec ersetzen
könnte?
Eine ganz einfache, die Verwendung von VBA!

Dazu hast Du verschiedene Möglichkeiten:

Du verwendest ein Start Formular, in dem der Code aus dem Autoexec Makro (in
VBA konvertiert) ausgeführt wird.

Du verwendest weiterhin ein Autoexec Makro, führst dort aber nur einen
Befehl aus:
Ausführen Code
Parameter "MyStartupFunction()"

Nun schreibst Du alles, was im Autoexec Makro so gemacht wird in eben eine
solche Funktion hinein.

Im Gegensatz zu Makros kennt VBA eine ziemlich vernünftige Fehlerbehandlung.
Dazu findest Du im www.dbdev.org im Download Bereich ein entsprechendes
Whitepaper.

Ja, nochwas. Makros lassen sich mit dem Assistenten automatisch in VBA Code
umwandeln. Das ist sicher ein möglicher Startpunkt. Anschliessend sollten
die so generierten VBA Sequenzen allerdings auf echtes VBA umgebaut werden,
so dass nicht einfach die Makro Befehle in VBA ausgeführt, sondern die dafür
in VBA vorgesehene Syntax verwendet wird, welche optimaler auf Fehler
reagiert. Ebenfalls wird vom Assistenten keine eigentlich brauchbare
Fehlerbehandlung eingebaut.

Gruss
Henry
--
Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com
Karl Donaubauer
2007-11-26 15:18:52 UTC
Permalink
Post by Wolfgang Kaiser
ich habe eine Access 2000 DB und finde es sehr ärgerlich, dass bei dem
kleinsten Fehler die AutoExec nicht ausgeführt wird, ohne dass dem
Anwender mitgeteilt wird, warum.
Gibt es eine Möglichkeit, die Fehler, die beim Ausführen der Autoexec
auftreten zu handeln?
Oder welche Alternativen gäbe es, mit denen man die Autoexec ersetzen
könnte?
Fehlerbehandlung in Makros gibt es erst ab Access 2007.

Viele Makrobefehle kann man aber durch eine entsprechende Bedingung
(fast) fehlersicher machen, z.B. prüfen, ob ein Objekt geöffnet ist, auf
das die Makroaktion Bezug nimmt.

Ansonsten bleibt dir nur VBA, z.B. indem du in der Ereignisprozedur
"Beim Öffnen" des Startformulares Code ausführen lässt.
Im VBA-Code kannst du fast alle Fehler bequem abfangen.
--
HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com
Access-Entwickler-Konferenz: www.donkarl.com/?AEK
SQL Server-Entwickler-Konferenz: www.donkarl.com/?SEK
Gunter Avenius
2007-11-26 15:20:48 UTC
Permalink
Hallo Wolfgang,
Post by Wolfgang Kaiser
ich habe eine Access 2000 DB und finde es sehr ärgerlich, dass bei
dem kleinsten Fehler die AutoExec nicht ausgeführt wird, ohne dass
dem Anwender mitgeteilt wird, warum.
Gibt es eine Möglichkeit, die Fehler, die beim Ausführen der
Autoexec auftreten zu handeln?
Vor A2007 nicht.
Post by Wolfgang Kaiser
Oder welche Alternativen gäbe es, mit denen man die Autoexec
ersetzen könnte?
verwende VBA.

Rufe im Makro Dein Code (Public Function) auf (Aktion: "Ausführen
Code")

Gruß
Gunter
--
__________________________________________________________
Access FAQ: http://www.donkarl.com
home: http://www.avenius.com - http://www.AccessRibbon.de
Wolfgang Kaiser
2007-11-27 10:37:41 UTC
Permalink
Hallo Henry, Karl und Gunter,

vielen Dank, dann werde ich mein makro entsprechend ersetzen.

Viele grüße

Wolfgang

Loading...