Wartungsarbeiten bei längerer Benutzerpause durchführen (Access 97, 2000)
Veröffentlicht am 17.12.2003
Über ein Formular mit einem Zeitgeber überwachen Sie die Aktivitäten des Benutzers.
Bei vielen Aufgaben mit größerem Zeitaufwand bietet es sich an, diese dann zu erledigen, wenn der Benutzer gerade eine Pause macht und nicht mit der Datenbank arbeitet.
Die Überwachung wird erledigt, indem das aktuelle Formular sowie das aktuelle Steuerelement durch einen Timer regelmäßig überprüft wird. Sollte sich hier längere Zeit nichts ändern, macht der Benutzer wahrscheinlich eine Pause.
Zur Umsetzung dieser Lösung legen Sie ein neues Formular an und stellen die Zeitgeberintervall-Eigenschaft auf 1000 ein (1000 Millisekunden = 1 Sekunde). Die BeiZeitgeber-Ereigniseigenschaft verknüpfen Sie anschließend mit der folgenden Prozedur:
Private Sub Form_Timer()
Static LastFormName As Variant
Static LastControlName As Variant
Static IdleTime As Long
Dim ActiveFormName As Variant
Dim ActiveControlName As Variant
On Error Resume Next
ActiveFormName = Screen.ActiveForm.Name
ActiveControlName = Screen.ActiveControl.Name
On Error GoTo 0
If LastFormName <> ActiveFormName Then
LastFormName = ActiveFormName
IdleTime = 0
End If
If LastControlName <> ActiveControlName Then
LastControlName = ActiveControlName
IdleTime = 0
End If
IdleTime = IdleTime + Me.TimerInterval / 1000
If IdleTime = 60 Then 'Angabe in Sekunden
IdleTime = 0
'Hier bitte den Idle-Programmcode einfügen
MsgBox "Idle!"
End If
End Sub
Damit das Formular nicht auf dem Bildschirm zu sehen ist, öffnen Sie es einfach im unsichtbaren Zustand.