ACC: Hoe niet-actieve tijd of inactiviteit detecteren

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 128814 - Bekijk de producten waarop dit artikel van toepassing is.
Matig: Basic macro, codering en interoperabiliteit vaardigheden vereist.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Samenvatting

In dit artikel ziet u hoe u een procedure die wordt uitgevoerd als de Microsoft Access-toepassing geen tussenkomst van de gebruiker voor een opgegeven periode.

In dit artikel wordt ervan uitgegaan dat u bekend bent met Visual Basic voor Toepassingen en met het maken van toepassingen met behulp van de hulpprogramma's van Microsoft Access. Voor meer informatie. Raadpleeg 'Building over Visual Basic for Applications, Handmatige toepassingen".

Opmerking: Visual Basic for Applications (gebruikt in Microsoft Access 7.0 en Microsoft Access 97) wordt Access Basic genoemd in versie 2.0.

Opmerking: Dit artikel wordt een techniek gedemonstreerd in het monster uitgelegd FrmSampl.exe (voor Microsoft Access voor Windows 95 versie 7.0)-bestanden en FrmSmp97.exe (voor Microsoft Access 97). Voor meer informatie over u kunt deze voorbeeldbestanden, raadpleegt u de volgende artikelen in de Microsoft Knowledge Base:
150895 ACC95: Microsoft Access monster formulieren beschikbaar in Download Center
175066 ACC97: Microsoft Access 97 voorbeeldformulieren beschikbaar in Download Center

Meer informatie

Het formulier DetectIdleTime maken

  1. Maak een leeg formulier dat niet is gebaseerd op een tabel of query en de naam DetectIdleTime.
  2. Stel de volgende eigenschappen:
    OnTimer: [Gebeurtenisprocedure]
    TimerInterval: 1000
    Opmerking: De instelling Timerinterval (TimerInterval) geeft aan hoe vaak (in milliseconden) de toepassing controleert op inactiviteit van de gebruiker. Een instelling van 1000 is gelijk aan 1 tweede.
  3. Voer de volgende code voor de gebeurtenisprocedure OnTimer eigenschap:

    Opmerking: In de volgende voorbeeldcode een onderstrepingsteken (_) aan het einde van een regel wordt gebruikt als een regelvervolgteken. Verwijder het onderstrepingsteken vanaf het einde van de regel wanneer u deze code in 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. De volgende procedure in de formuliermodule maken:
           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
    						

Het gebruik van het formulier DetectIdleTime

Om het formulier DetectIdleTime verbergen wanneer de toepassing wordt geopend, maakt de volgende AutoExec-macro:
   Macro Name   Action
   ---------------------
   AutoExec     OpenForm

   AutoExec Actions
   ----------------------------
   OpenForm:
      Form Name: DetectIdleTime
      View: Form
      Filter Name:
      Where Condition:
      Data Mode: Edit
      Window Mode: Hidden
				
Kunt u code aan de procedure IdleTimeDetected, die de procedure uitgevoerd als er geen gebruikersactiviteit voor de tijd opgegeven in de De constante IDLEMINUTES. U kan bijvoorbeeld Microsoft Access hebt Sluit af met de volgende gebeurtenisprocedure:

In Microsoft Access 7.0 en 97:
   Sub IdleTimeDetected (ExpiredMinutes)
      Application.Quit acSaveYes
   End Sub
				
In Microsoft Access 2.0:
   Sub IdleTimeDetected (ExpiredMinutes)
      Application.Quit A_SAVE
   End Sub
				
Deze procedure wordt de toepassing alle afsluiten objecten zonder een dialoogvenster weer te geven.

Referenties

Zoek voor meer informatie over de gebeurtenis Timer de Help-IndexTimergebeurtenis.

Eigenschappen

Artikel ID: 128814 - Laatste beoordeling: woensdag 11 juli 2012 - Wijziging: 4.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 97 Standard Edition
Trefwoorden: 
kbhowto kbprogramming kbusage kbmt KB128814 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende: 128814
Vrijwaring inhoud KB-artikelen over niet langer ondersteunde producten
Dit artikel heeft betrekking op producten waarvoor Microsoft geen ondersteuning meer biedt. Daarom wordt dit artikel alleen in de huidige vorm aangeboden en wordt het niet meer bijgewerkt.

Geef ons feedback

 

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