ACC: Como detectar o tempo de espera do utilizador ou de inactividade

Traduções de Artigos Traduções de Artigos
Artigo: 128814 - Ver produtos para os quais este artigo se aplica.
Moderado: Requer básica macros, codificação e interoperabilidade competências.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo mostra como criar um procedimento que será executada se a aplicação do Microsoft Access não detecta qualquer intervenção do utilizador para um período de tempo especificado.

Este artigo pressupõe que está familiarizado com o Visual Basic for Applications e criação de aplicações do Microsoft Access utilizando as ferramentas de programação fornecidas com o Microsoft Access. Para mais informações sobre o Visual Basic for Applications, consulte o manual "Building Applications".

NOTA: Visual Basic for Applications (utilizado no Microsoft Access 7.0 e Microsoft Access 97) é designado por Basic do Access versão 2.0.

NOTA: Este artigo explica uma técnica demonstrada nos ficheiros de exemplo, FrmSampl.exe (para o Microsoft Access para Windows 95 versão 7.0) e FrmSmp97.exe (para o Microsoft Access 97). Para obter informações sobre como obter estes ficheiros de exemplo, consulte os seguintes artigos na base de dados de conhecimento da Microsoft:
150895ACC95: Exemplo do Microsoft Access formulários disponível no Centro de transferências
175066ACC97: Microsoft Access 97 formulários de exemplo disponível no Centro de transferências

Mais Informação

Como criar o formulário DetectIdleTime

  1. Criar um formulário em branco que não seja baseado em qualquer tabela ou consulta e o nome DetectIdleTime.
  2. Defina as seguintes propriedades de formulário:
    OnTimer: [Procedimento de evento]
    TimerInterval: 1000
    NOTA: O TimerInterval definição indica frequência (em milissegundos) a aplicação verifica por inactividade do utilizador. Uma definição de 1000 é igual a 1 segundo.
  3. Introduza o código seguinte para o procedimento de evento OnTimer propriedade:

    NOTA: No código de exemplo seguinte, um sublinhado (_) no final de uma linha é utilizado como um carácter de continuação de linha. Remova o carácter de sublinhado do final da linha quando recriar este código Basic do Access.
          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. Crie o seguinte procedimento do módulo de formulário:
           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
    						

Como utilizar o formulário DetectIdleTime

Para ocultar o formulário DetectIdleTime quando abre a aplicação, crie a seguinte macro de execução automática:
   Macro Name   Action
   ---------------------
   AutoExec     OpenForm

   AutoExec Actions
   ----------------------------
   OpenForm:
      Form Name: DetectIdleTime
      View: Form
      Filter Name:
      Where Condition:
      Data Mode: Edit
      Window Mode: Hidden
				
pode adicionar código ao procedimento IdleTimeDetected para que o procedimento é executado se não existir nenhuma actividade do utilizador do tempo especificado no valor constante IDLEMINUTES. Por exemplo, pode ter o Microsoft Access sair com o seguinte procedimento de evento:

No Microsoft Access 7.0 e 97:
   Sub IdleTimeDetected (ExpiredMinutes)
      Application.Quit acSaveYes
   End Sub
				
no Access 2.0:
   Sub IdleTimeDetected (ExpiredMinutes)
      Application.Quit A_SAVE
   End Sub
				
este procedimento faz com que o Microsoft Access sair da aplicação, guardar todos os objectos sem apresentar uma caixa de diálogo.

Referências

Para mais informações sobre o evento Timer, procure no índice remissivo da ajuda para o evento Timer .

Propriedades

Artigo: 128814 - Última revisão: 19 de janeiro de 2007 - Revisão: 2.3
A informação contida neste artigo aplica-se a:
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 95 Standard Edition
  • Microsoft Access 97 Standard Edition
Palavras-chave: 
kbmt kbhowto kbprogramming kbusage KB128814 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 128814
Exclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.

Submeter comentários

 

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