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

Traductions disponibles Traductions disponibles
Numéro d'article: 128814 - Voir les produits auxquels s'applique cet article
Modéré : Nécessite des compétences de l'interopérabilité, de codage et de macro de base.
Agrandir tout | Réduire tout

Sommaire

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.

Propriétés

Numéro d'article: 128814 - Dernière mise à jour: vendredi 19 janvier 2007 - Version: 2.3
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Access 2.0 Standard
  • Microsoft Access 95 Standard
  • Microsoft Access 97 Standard
Mots-clés : 
kbmt kbhowto kbprogramming kbusage KB128814 KbMtfr
Traduction automatique
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
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.

Envoyer des commentaires

 

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