ACC: Jak rozpoznání nečinnosti nebo doba nečinnosti uživatele

Překlady článku Překlady článku
ID článku: 128814 - Produkty, které se vztahují k tomuto článku.
Střední: Vyžaduje základní dovednosti v oblasti maker, kódování a práce v různých prostředích.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek ukazuje, jak vytvořit proceduru, který bude spuštěn, pokud aplikaci Microsoft Access nezjistí vstupu uživatele pro zadané období.

Tento článek předpokládá, že jste obeznámeni s jazyka pro aplikace a vytváření aplikací bude pomocí programování nástroje dodávané s aplikací Microsoft Access. Další informace o jazyka pro aplikace najdete v příručce "Vytváření aplikací".

Poznámka: Visual Basic for Applications (používané v aplikaci Access 97 a Microsoft Access 7.0) se nazývá základní přístup ve verzi 2.0.

Poznámka: Tento článek vysvětluje postup znázorněn v ukázkové soubory FrmSampl.exe (pro Microsoft Access pro Windows 95 verze 7.0) a FrmSmp97.exe (pro aplikaci Access 97). Informace o získání těchto ukázkových souborů naleznete v následujících článcích znalostní báze Microsoft Knowledge Base:
150895ACC95: Bude ukázkových formulářů v Centru pro stahování dostupné
175066ACC97: Microsoft Access 97 vzorových formulářů dostupné v Centru pro stahování

Další informace

Jak vytvořit formulář DetectIdleTime

  1. Vytvořte prázdný formulář založený na tabulce nebo dotazu a název DetectIdleTime.
  2. Nastavit následující vlastnosti formuláře:
    OnTimer: [Událostní procedura]
    TimerInterval: 1000
    Poznámka: Toto nastavení označuje jak často (v milisekundách) TimerInterval aplikace zkontroluje pro nečinnosti uživatele. Nastavení 1000 rovná se 1 sekunda.
  3. Zadejte následující kód pro proceduru události vlastnost OnTimer:

    Poznámka: V následujícím ukázkovém kódu podtržítka (_) na konci řádku se používá jako znak pro pokračování řádku. Odebrat podtržení z konec řádku při obnovení tohoto kódu v jazyce 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. Vytvořte následující proceduru v modulu formuláře:
           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
    						

Použití formuláře DetectIdleTime

Skrýt DetectIdleTime formulář při otevření aplikace, vytvořte následující makro AutoExec:
   Macro Name   Action
   ---------------------
   AutoExec     OpenForm

   AutoExec Actions
   ----------------------------
   OpenForm:
      Form Name: DetectIdleTime
      View: Form
      Filter Name:
      Where Condition:
      Data Mode: Edit
      Window Mode: Hidden
				
můžete přidat kód postupu IdleTimeDetected, že bude spuštěna procedura Pokud žádná činnost uživatele pro množství z času zadané v IDLEMINUTES konstantní hodnotu. Může například mít bude ukončena s následující proceduru události:

V Microsoft Access 7.0 a 97:
   Sub IdleTimeDetected (ExpiredMinutes)
      Application.Quit acSaveYes
   End Sub
				
V Microsoft Access 2.0:
   Sub IdleTimeDetected (ExpiredMinutes)
      Application.Quit A_SAVE
   End Sub
				
tento postup způsobí bude ukončete aplikace uložení všech objektů bez zobrazení dialogového okna.

Odkazy

Další informace o události Timer vyhledat v rejstříku nápovědy události Timer.

Vlastnosti

ID článku: 128814 - Poslední aktualizace: 19. ledna 2007 - Revize: 2.3
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 95 Standard Edition
  • Microsoft Access 97 Standard Edition
Klíčová slova: 
kbmt kbhowto kbprogramming kbusage KB128814 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:128814
Právní omezení pro obsah znalostní báze týkající se produktů, jejichž podpora byla ukončena
Tento článek byl napsán o produktech, pro které společnost Microsoft již neposkytuje nadále podporu. Článek je tedy nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.

Dejte nám zpětnou vazbu

 

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