Access & SOHO-Datenbanken
Von: Uli, 21.6.2004 12:47 Uhr
Hallo,
ich habe eine Access 2002-Datenbank in einer Mehrbenutzerumgebung laufen.
Da Access bekanntlich bei gleichzeitigen Zugriffen sehr schnell in die Knie geht, würde ich gerne eine Zählschleife einbauen, die die Anwendung nach dem Durchlaufen beendet, wenn eine gewisse Zeit keine Taste gedrückt wird.

D.h.
1. Die Zählschleife beim Programmaufruf mittels Makro (autoexec) starten
2. Bei Taste die Zählschleife neu starten

Hat evtl. jemand eine Lösung?

Danke
Gruß Uli



  1. Antwort von Manfred Tessin 0
    Re: 'Autoshut' möglich?
    Hallo, Uli! D.h.
    1. Die Zählschleife beim Programmaufruf mittels Makro
    (autoexec) starten
    2. Bei Taste die Zählschleife neu starten
    Hat evtl. jemand eine Lösung?
    Na, das wird ja lustig. Die von Dir beschriebene Funktion würde ich so umsetzen, dass ich ein Formular mit Zeitgeberintervall beim Start starte und unsichtbar im Hintergrund laufen lasse. Diese Überprüfung würde ich z. B. alle 10 Sekunden durchlaufen lassen (TimerIntervall auf 10.000) und überprüfen, ob die Routine entsprechend oft (z. B. 60 Mal für ein Shutdown-Intervall von 10 Minuten) durchgelaufen ist.
    Weiterhin eine globale Variable vorhalten, die den Status "Taste gedrückt" beschreibt. Wenn diese sich die ganze Zeit nicht ändert, kann das Programm beendet werden. Falls sie auf "Taste gedrückt" steht, wird der interne Zähler wieder auf 0 gesetzt (noch mal 10 Minuten warten), und die globale Variable wird auch wieder zurückgesetzt.

    Nun aber: Wenn bei jedem Tastendruck die Zeit neu gezählt werden soll, muss bei den "BeiTaste"-Ereignissen (oder ähnlichen) besagte Variable gesetzt werden. Und das u. U. in jedem Formular, bei jedem Steuerelement... Ist zwar immer nur eine Zeile, aber doch ganz schön nervig...

    Eine andere Variante wäre, alle com System gesendeten Messages zu überwachen und diejenigen, die für Deine Applikation bestimmt sind, für das Rücksetzen der Zeit zu verwenden.

    Gruß, Manfred
    • Antwort von Reinhard Kraasch 0