Hallo,
Ich habe in DB, die jeden Monat am 15. die offenen Aufträge ausdrucken soll.
Gibt es eine Möglichkeit, daß Access (97) das automatisch macht? Oder muß man jeden Monat am 15. das Start-Makro auslösen?
JAN
Nur ünber den At-Befehl oder Systemdienst (s. mein Posting im Archiv).
Gruß
J.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Das ist ja schön, aber leider verstehe ich es nicht, auch das dort genannte Beispiel nicht.
Hast du das nicht nochmal für ‚Nicht-so-Helle‘?
JAN
Nur ünber den At-Befehl oder Systemdienst
(s. mein Posting im Archiv).Gruß
J.
OK, nochmal:
Der at-Befehl startet Programme an definierten Zeiten. Durch Eingabe von
at 08:00 /every:15 msaccess.exe meinedb.mdb
bringst Du es dazu, daß es an jedem 15. um 8:00 Uhr Deine MDB mit Access startet.
Nun wäre das doof, bei jedem Start der MDB die Befehle auszuführen, die nur am 15. laufen sollen. Deswegen müssen wir
Access mitteilen, daß wir die MDB „anders“ öffnen wollen. Dazu gibt es den Aufrufparameter /C:
msaccess.exe meinedb.mdb /c irgendwas
und zusammen mit at:
at 08:00 /every:15 msaccess.exe meinedb.mdb /c irgendwas
Das bewirkt zunächst mal nichts, nur innerhalb Deiner Funktionen kannst Du auf diesen sog. Runcommand testen. Dort prüfst
Du, ob Runcommand = ‚irgendwas‘ ist, und wenn ja, dann weißt Du - aha, der will den Krempel vom 15. tun.
Damit überhaupt eine Funktion gestartet wird, muß das im Autoexec-Macro drinstehen:
AusführenCode
(und unten bei der Funktion)
DoIt()
Die Funktion DoIt (einfach ein neues Modul erstellen und eine Funktion DoIt anlegen)
kann etwa so aussehen:
Public Function DoIt()
if Command() = „irgendwas“ then
Tue_was()
Docmd.Quit
else
DoCmd.OpenForm „MeinStartFormular“
end if
end function
das heißt, wenn der Aufruf mit Parameter „irgendwas“ war, dann führe das aus, was Du willst (hier dargestellt mit dem Aufruf
Tue_was(), bei Dir steht heier was anderes) und beende Access danach. Ansonsten, starte das Formular, das Du sonst immer
startest.
Ich hoffe das war verständlich!
Gruß
J.
P.S. Noch was: Den Befehl at gibt es nur unter NT. Unter 95/98 gibt es einen sog. Systemdienst, der sowas macht. Die
Bedienung ist komfortabel und beinah selbsterklärend
Hi!
Ich denke mal, du kannst übers Autoexec eine Funktion aufrufen, die das Datum checkt und bei korrektem Datum die Makros aufruft!
Zusätzlich gibt es auch diverse „timer-Programme“ die Programme nur an bestimmten Tagen aufrufen, so könntest du sicher gehen, daß Access dann auch am 15. startet, oder du baust in obige Funktion ein, das Access erkennt, ob am 15. die Makros gestartet wurden, so daß sie dann auch an späteren Tagen aufgerufen werden!
(Mit den Timerprogrammen kenn ich mich leider net aus…)
Gruß
Bernd
fast…
Der Parameter ist nicht /C ,sondern /cmd.
Aber sonst passt’s.
Danke.
Jan