ACC: Wie Ermitteln von Benutzerleerlaufzeit oder Inaktivität

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 128814 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Moderat: Erfordert grundlegende Kenntnisse in den Bereichen Makros, Programmierung und Interoperabilität.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser Artikel veranschaulicht eine Prozedur erstellen, die ausgeführt wird, wenn Microsoft Access-Anwendung Benutzereingaben für einen angegebenen Zeitraum nicht erkennen kann.

Dieser Artikel setzt voraus, dass Sie mit Visual Basic für Applikationen und mit dem Erstellen von Microsoft Access-Anwendungen mit Hilfe der in Microsoft Access enthaltenen Programmiertools vertraut sind. Weitere Informationen zu Visual Basic für Applikationen finden Sie im Handbuch "Building Applications".

Hinweis: Visual Basic für Applikationen (in Microsoft Access 7.0 und Microsoft Access 97 verwendet) wird Access Basic in Version 2.0 bezeichnet.

Hinweis: Dieser Artikel erklärt eine Technik, die in den Beispieldateien FrmSampl.exe (für Microsoft Access für Windows 95 Version 7.0) und FrmSmp97.exe (für Microsoft Access 97). Informationen dazu, wie Sie diese Beispieldateien erhalten finden Sie unter die folgenden Artikeln der Microsoft Knowledge Base:
150895ACC95: Beispiel für Microsoft Access-Formulare im Download Center verfügbar
175066ACC97: Microsoft Access 97 Beispielformulare verfügbar im Download Center

Weitere Informationen

So erstellen Sie das Formular DetectIdleTime

  1. Erstellen Sie ein leeres Formular, das nicht auf einer Tabelle oder Abfrage basiert und nennen Sie es DetectIdleTime.
  2. Legen Sie die folgenden Formulareigenschaften:
    OnTimer: [Ereignisprozedur]
    TimerInterval: 1000
    Hinweis: Die TimerInterval Einstellung Häufigkeit gibt (in Millisekunden) an, überprüft die Anwendung für Inaktivität von Benutzern. Eine Einstellung von 1000 entspricht 1 Sekunde.
  3. Geben Sie folgenden Code für die OnTimer-Eigenschaft-Ereignisprozedur:

    Hinweis: In den folgenden Beispielcode wird ein Unterstrich (_) am Ende einer Zeile als ein Zeilenfortsetzungszeichen verwendet. Entfernen Sie den Unterstrich vom Ende der Zeile, wenn Sie diesen Code in Access Basic neu erstellen.
          Sub Form_Timer()
             ' IDLEMINUTES determines how much idle time to wait for before
             ' running the IdleTimeDetected subroutine.
             Const IDLEMINUTES = 5
    
             Static PrevControlName As String
             Static PrevFormName As String
             Static ExpiredTime
    
             Dim ActiveFormName As String
             Dim ActiveControlName As String
             Dim ExpiredMinutes
    
             On Error Resume Next
    
             ' Get the active form and control name.
    
             ActiveFormName = Screen.ActiveForm.Name
             If Err Then
                ActiveFormName = "No Active Form"
                Err = 0
             End If
    
             ActiveControlName = Screen.ActiveControl.Name
                If Err Then
                ActiveControlName = "No Active Control"
                Err = 0
             End If
    
             ' Record the current active names and reset ExpiredTime if:
             '    1. They have not been recorded yet (code is running
             '       for the first time).
             '    2. The previous names are different than the current ones
             '       (the user has done something different during the timer
             '        interval).
             If (PrevControlName = "") Or (PrevFormName = "") _
               Or (ActiveFormName <> PrevFormName) _
               Or (ActiveControlName <> PrevControlName) Then
                PrevControlName = ActiveControlName
                PrevFormName = ActiveFormName
                ExpiredTime = 0
             Else
                ' ...otherwise the user was idle during the time interval, so
                ' increment the total expired time.
                ExpiredTime = ExpiredTime + Me.TimerInterval
             End If
    
             ' Does the total expired time exceed the IDLEMINUTES?
             ExpiredMinutes = (ExpiredTime / 1000) / 60
             If ExpiredMinutes >= IDLEMINUTES Then
                ' ...if so, then reset the expired time to zero...
                ExpiredTime = 0
                ' ...and call the IdleTimeDetected subroutine.
                IdleTimeDetected ExpiredMinutes
             End If
          End Sub
    						
  4. Die folgende Prozedur im Modul Formulars zu erstellen:
           Sub IdleTimeDetected (ExpiredMinutes)
             Dim Msg As String
             Msg = "No user activity detected in the last "
             Msg = Msg & ExpiredMinutes & " minute(s)!"
             MsgBox Msg, 48
          End Sub
    						

So verwenden Sie das Formular DetectIdleTime

Erstellen Sie DetectIdleTime Formular ausblenden, wenn die Anwendung öffnet, das folgende AutoExec-Makro:
   Macro Name   Action
   ---------------------
   AutoExec     OpenForm

   AutoExec Actions
   ----------------------------
   OpenForm:
      Form Name: DetectIdleTime
      View: Form
      Filter Name:
      Where Condition:
      Data Mode: Edit
      Window Mode: Hidden
				
Sie können die IdleTimeDetected Prozedur so, dass die Prozedur ausgeführt, wird ist keine Benutzeraktivität des Zeitraums in der Konstante Wert IDLEMINUTES angegebenen Code hinzufügen. Angenommen, Sie verfügen über Microsoft Access die folgende Ereignisprozedur zu beenden:

In Microsoft Access 7.0 und 97:
   Sub IdleTimeDetected (ExpiredMinutes)
      Application.Quit acSaveYes
   End Sub
				
In Microsoft Access 2.0:
   Sub IdleTimeDetected (ExpiredMinutes)
      Application.Quit A_SAVE
   End Sub
				
diese Prozedur bewirkt, dass Microsoft Access die Anwendung, speichern alle Objekte ohne Anzeigen eines Dialogfelds zu beenden.

Informationsquellen

Weitere Informationen über das Timer-Ereignis finden Sie in der Hilfe für Timer-Ereignis .

Eigenschaften

Artikel-ID: 128814 - Geändert am: Freitag, 19. Januar 2007 - Version: 2.3
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 95 Standard Edition
  • Microsoft Access 97 Standard Edition
Keywords: 
kbmt kbhowto kbprogramming kbusage KB128814 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 128814
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Disclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com