ACC : Comment faire pour détecter les temps d'inactivité utilisateur ou d'inactivité

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

La version anglaise de cet article est la suivante: 128814
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Modéré : Nécessite des compétences de l'interopérabilité, de codage et de macro de base.
Résumé
Cet article vous montre comment créer une procédure qui s'exécutera si votre application Microsoft Access ne détecte pas de toute entrée d'utilisateur pour une période donnée.

Cet article suppose que vous êtes familiarisé avec Visual Basic pour applications et la création d'applications de Microsoft Access à l'aide des outils de programmation fournis avec Microsoft Access. Pour plus d'informations sur Visual Basic pour applications, reportez-vous au manuel «Création d'applications».

Remarque : Visual Basic pour applications (utilisé dans Microsoft Access 7.0 et Microsoft Access 97) est appelé Access Basic dans la version 2.0.

Remarque : Cet article explique une technique illustrée dans les exemples de fichiers, FrmSampl.exe (pour Microsoft Access pour Windows 95 version 7.0) et FrmSmp97.exe (pour Microsoft Access 97). Pour plus d'informations sur la façon d'obtenir ces fichiers d'exemples, consultez les articles suivants dans la base de connaissances Microsoft :
150895ACC95 : Exemple de Microsoft Access Forms disponible dans le Centre de téléchargement
175066ACC97 : Microsoft Access 97 exemples de formulaires disponibles dans le Centre de téléchargement
Plus d'informations

Comment faire pour créer le formulaire DetectIdleTime

  1. Créez un formulaire vierge qui ne repose pas sur n'importe quelle table ou requête et nommez-la DetectIdleTime.
  2. Définissez les propriétés de formulaire suivantes :
    OnTimer: [Procédure événementielle]
    TimerInterval : 1000
    Remarque : Le paramètre indique la fréquence (en millisecondes) IntervalleMinuterie (TimerInterval) l'application vérifie pour inactivité de l'utilisateur. Un paramètre de 1 000 est égale à 1 seconde.
  3. Entrez le code suivant pour la procédure événementielle de propriété SurMinuterie (OnTimer) :

    Remarque : Dans l'exemple de code suivant, un trait de soulignement (_) à la fin d'une ligne est utilisé comme un caractère de continuation de ligne. Supprimez le trait de soulignement de fin de la ligne lors de la reprogrammation dans Access Basic.
          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. Créez la procédure suivante dans le module de formulaire :
           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						

Comment faire pour utiliser le formulaire DetectIdleTime

Pour masquer le formulaire DetectIdleTime lorsque l'application s'ouvre, créez la macro AutoExec suivante :
   Macro Name   Action   ---------------------   AutoExec     OpenForm   AutoExec Actions   ----------------------------   OpenForm:      Form Name: DetectIdleTime      View: Form      Filter Name:      Where Condition:      Data Mode: Edit      Window Mode: Hidden				
vous pouvez ajouter du code à la procédure IdleTimeDetected afin que la procédure s'exécute si il n'y a aucune activité utilisateur pour la quantité de temps spécifié dans la valeur de constante IDLEMINUTES. Par exemple, vous pouvez avoir Microsoft Access quitter avec la procédure événementielle suivante :

Dans Microsoft Access 7.0 et 97 :
   Sub IdleTimeDetected (ExpiredMinutes)      Application.Quit acSaveYes   End Sub				
dans Access 2.0 :
   Sub IdleTimeDetected (ExpiredMinutes)      Application.Quit A_SAVE   End Sub				
cette procédure, Microsoft Access quitter l'application, l'enregistrement de tous les objets sans afficher de boîte de dialogue.
Références
Pour plus d'informations sur l'événement Timer, recherche l'index de l'aide pour l'événement Timer.

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 128814 - Dernière mise à jour : 12/04/2015 11:14:38 - Révision : 2.3

Microsoft Access 2.0 Standard, Microsoft Access 95 Standard, Microsoft Access 97 Standard

  • kbnosurvey kbarchive kbmt kbhowto kbprogramming kbusage KB128814 KbMtfr
Commentaires