Supportnet / Forum / Datenbanken
Access starten und direct ein Macro laufen lassen
Frage
Hallo zusammen,
Ich habe folgendes Problem:
Ich habe eine "service" MDB die vornehmlich Nachts Prozeduren ausführen soll. Alle nötigen Tabellen sind verknüpft.
Die Prozeduren habe ich in VBA geschrieben. (Läuft auch so tadellos)
Jetzt möchte ich über den Windows Scheduler Access starten und die gewünschten Proceduren ausführen!
(Windows 2000 / Access2000)
Mit Macroname "autoexec" habe ich schon Versuche gemacht, startet aber immer nur dieses Macro.
Gibt es eine andere Möglichkeit?
Antwort 1 von Koebi
Grüezi Andreas
Bau halt im autoexec-Makro eine Aktion "CodeAusführen" ein, womit Du die Prozedur aufrufst.
Gruss
Köbi
Bau halt im autoexec-Makro eine Aktion "CodeAusführen" ein, womit Du die Prozedur aufrufst.
Gruss
Köbi
Antwort 2 von Andreas_61
Hi Köbi,
soweit war ich schon . . . das geht auch,
aber ich möchte halt verschiedene Macros/VB'S starten.
Autoexec hat dann noch den Nachteil das immer dieses Macro abläuft (und access wieder schließt) auch wenn ich es nur bearbeiten will!
Gruß
Andreas
soweit war ich schon . . . das geht auch,
aber ich möchte halt verschiedene Macros/VB'S starten.
Autoexec hat dann noch den Nachteil das immer dieses Macro abläuft (und access wieder schließt) auch wenn ich es nur bearbeiten will!
Gruß
Andreas
Antwort 3 von Koebi
Hallo Andreas
Nur so ein Gedanke. Lass beim Starten der DB ein Formular öffnen (am besten verborgen). Mit diesem Formular verbindest Du über das Timer-Ereignis das Starten Deiner Prozeduren (z.B. 5 Minuten nach öffnen des Formulars werden die Prozeduren ausgeführt). Wenn Du nun die DB öffnest nur zum bearbeiten, kannst Du durch rechtzeitiges Schliessen des Formulars des Starten der Prozeduren vermeiden. Andernfalls, also Nachts, laufen die Prozeduren ab, wovon die letzte das Schliessen der DB beinhaltet.
Wie gesagt, nur eine Idee, aber vielleicht realierbar.
Gruss
Köbi
Nur so ein Gedanke. Lass beim Starten der DB ein Formular öffnen (am besten verborgen). Mit diesem Formular verbindest Du über das Timer-Ereignis das Starten Deiner Prozeduren (z.B. 5 Minuten nach öffnen des Formulars werden die Prozeduren ausgeführt). Wenn Du nun die DB öffnest nur zum bearbeiten, kannst Du durch rechtzeitiges Schliessen des Formulars des Starten der Prozeduren vermeiden. Andernfalls, also Nachts, laufen die Prozeduren ab, wovon die letzte das Schliessen der DB beinhaltet.
Wie gesagt, nur eine Idee, aber vielleicht realierbar.
Gruss
Köbi
Antwort 4 von MickK
Hallo, also
1. kann man in das Autoexec-Makro natürlich mehrere Zeilen mit 'CodeAusführen' einfügen, die dann nacheinander abgearbeitet werden und
2. wenn man beim Öffnen der Access-Datenbank die SHIFT-Taste gedrückt hält, verhindert man die Ausführung des Autoexec.
Gruss
Mick
1. kann man in das Autoexec-Makro natürlich mehrere Zeilen mit 'CodeAusführen' einfügen, die dann nacheinander abgearbeitet werden und
2. wenn man beim Öffnen der Access-Datenbank die SHIFT-Taste gedrückt hält, verhindert man die Ausführung des Autoexec.
Gruss
Mick
Antwort 5 von Andreas_61
Hallo Köbi, Mick,
Dank für den "shift" Tipp,
Habe aber noch folgendes herausgefunden, das genau mein Problem löst.
( Verschieden Macros/VBAScripts ausführen in einer Dienst Datanbank)
und zwar mit den STARTOPTIONEN
Syntax c:\Prog Path\MSAccess.exe Datenbank.mdb /x makro
Mein Beispiel sieht so aus:
"C:\Programme\Microsoft Office\Office\MSACCESS.EXE" O:\CDB\CDB_Service\ADM_Export.mdb /x makro1
(Wird hier leider in zwei Zeilen dargestellt, ist aber Eine)
Dies kann man jetzt als Ziel in eine Verknüpfung eintragen!
Gruß
Andreas
Dank für den "shift" Tipp,
Habe aber noch folgendes herausgefunden, das genau mein Problem löst.
( Verschieden Macros/VBAScripts ausführen in einer Dienst Datanbank)
und zwar mit den STARTOPTIONEN
Syntax c:\Prog Path\MSAccess.exe Datenbank.mdb /x makro
Mein Beispiel sieht so aus:
"C:\Programme\Microsoft Office\Office\MSACCESS.EXE" O:\CDB\CDB_Service\ADM_Export.mdb /x makro1
(Wird hier leider in zwei Zeilen dargestellt, ist aber Eine)
Dies kann man jetzt als Ziel in eine Verknüpfung eintragen!
Gruß
Andreas

