ACC: Como detectar tempo ocioso do usuário ou da inatividade

Traduções deste artigo Traduções deste artigo
ID do artigo: 128814 - Exibir os produtos aos quais esse artigo se aplica.
Moderado: Requer básica macro, codificação e interoperabilidade habilidades.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo mostra como criar um procedimento que será executado se o aplicativo Access yourMicrosoft não detectar qualquer entrada do usuário para uma specifiedperiod de tempo.

Este artigo pressupõe que você esteja familiarizado com Visual Basic forApplications e com a criação de aplicativos do Microsoft Access usando as ferramentas de theprogramming fornecidas com o Microsoft Access. Para obter informações adicionais sobre Visual Basic for Applications, consulte o manual de "BuildingApplications".

Observação: Visual Basic for Applications (usado no Microsoft Access 7.0 andMicrosoft Access 97) é chamado Access Basic na versão 2.0.

Observação: Este artigo explica uma técnica demonstrada no samplefiles, 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 esses arquivos de exemplo, consulte os seguintes artigos na Base de dados de Conhecimento da Microsoft:
150895 ACC95: Microsoft Access exemplo formulários disponível no Centro de Download
175066 ACC97: Microsoft Access 97 formulários de exemplo disponível no Centro de Download

Mais Informações

Como criar o formulário DetectIdleTime

  1. Criar um formulário em branco que não seja baseado em nenhuma tabela ou consulta e denomine DetectIdleTime.
  2. Defina as seguintes propriedades de formulário:
    NoCronômetro: [Procedimento do evento]
    IntervaloDoCronômetro: 1000
    Observação: O IntervaloDoCronômetro configuração indica com que freqüência (em milissegundos) o aplicativo verifica devido à inatividade do usuário. Uma configuração de 1000 é igual a 1 segundo.
  3. Digite o seguinte código para o procedimento de evento de propriedade NoCronômetro:

    Observação: No código de exemplo a seguir, um sublinhado (_) ao final de uma linha é usado como um caractere de continuação de linha. Remova o sublinhado do final da linha quando recriar esse código no 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. Crie o procedimento a seguir no módulo do 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 usar o formulário DetectIdleTime

Para ocultar o formulário DetectIdleTime quando o aplicativo é aberto, crie asseguintes 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
				
Você pode adicionar código para o procedimento IdleTimeDetected para que o procedureruns se não houver nenhuma atividade do usuário durante o tempo especificado no valor da constante theIDLEMINUTES. Por exemplo, você poderia ter Accessquit Microsoft com o procedimento de evento a seguir:

No Microsoft Access 7.0 e 97:
   Sub IdleTimeDetected (ExpiredMinutes)
      Application.Quit acSaveYes
   End Sub
				
No Microsoft Access 2.0:
   Sub IdleTimeDetected (ExpiredMinutes)
      Application.Quit A_SAVE
   End Sub
				
Esse procedimento faz com que o Microsoft Access sair do aplicativo, salvando allobjects sem exibir uma caixa de diálogo.

Referências

Para obter mais informações sobre o evento Timer, pesquise no índice da Ajuda doEvento timer.

Propriedades

ID do artigo: 128814 - Última revisão: domingo, 9 de fevereiro de 2014 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 97 Standard Edition
Palavras-chave: 
kbhowto kbprogramming kbusage kbmt KB128814 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.
Clique aqui para ver a versão em Inglês deste artigo: 128814
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.

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