ACC: Как определить время простоя для пользователя или неактивности

Переводы статьи Переводы статьи
Код статьи: 128814 - Vizualiza?i produsele pentru care se aplic? acest articol.
Средних: Требуется основные макрос, кодирования и навыков взаимодействия.
Развернуть все | Свернуть все

В этой статье

Аннотация

В этой статье показано, как создать процедуру, которая будет выполняться, если приложение Microsoft Access не удается обнаружить все входные данные пользователя для указанного периода времени.

В данной статье предполагается, что вы знакомы с Visual Basic для приложений и создания приложений Microsoft Access, с помощью средств программирования, доступных в Microsoft Access. Для получения дополнительных сведений о Visual Basic для приложений обратитесь к руководству «Построение приложений».

Примечание: Visual Basic для приложений (используется в Microsoft Access версии 7.0 и Microsoft Access 97) называется обычной Access версии 2.0.

Примечание: Эта статья описывает способ демонстрируются в файлы примеров FrmSampl.exe (для Microsoft Access для Windows 95 версии 7.0) и FrmSmp97.exe (для Microsoft Access 97). Сведения о том, как получить эти образцы файлов обратитесь к следующим статьям Microsoft Knowledge Base:
150895ACC95: Microsoft Access образец формы доступно в центре загрузки
175066ACC97: Microsoft Access 97 учебные формы доступно в центре загрузки

Дополнительная информация

Создание формы DetectIdleTime

  1. Создание пустой формы, не основанную на таблице или запросе и назовите его DetectIdleTime.
  2. Задайте следующие свойства формы.
    OnTimer: [Процедура обработки событий]
    TimerInterval: 1000
    Примечание: TimerInterval параметр указывает частоту (в миллисекундах) приложение проверяет наличие бездействия пользователя. Значение 1000, равно 1 секунде.
  3. Для процедуры обработки события OnTimer свойство, введите следующий код:

    Примечание: В следующем примере кода подчеркивание (_) в конце строки используется как символ продолжения строки. Удалите знаки подчеркивания в конце строки при повторном создании этого кода в Microsoft 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. В модуле формы, создайте следующую процедуру:
           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
    						

Использование формы DetectIdleTime

Чтобы скрыть форму DetectIdleTime при открытии приложения, создайте следующий макрос AutoExec.
   Macro Name   Action
   ---------------------
   AutoExec     OpenForm

   AutoExec Actions
   ----------------------------
   OpenForm:
      Form Name: DetectIdleTime
      View: Form
      Filter Name:
      Where Condition:
      Data Mode: Edit
      Window Mode: Hidden
				
Можно добавить код к процедуре IdleTimeDetected таким образом, чтобы процедура выполняется, если нет никакой активности пользователей объем времени, указанного в IDLEMINUTES постоянное значение. Например может иметь закрыть с помощью следующей процедуры обработки события Microsoft Access:

В Microsoft Access версии 7.0 и 97:
   Sub IdleTimeDetected (ExpiredMinutes)
      Application.Quit acSaveYes
   End Sub
				
В Microsoft Access 2.0:
   Sub IdleTimeDetected (ExpiredMinutes)
      Application.Quit A_SAVE
   End Sub
				
Эта процедура вызывает чтобы выйти из приложения, сохраняя все объекты без отображения диалогового окна.

Ссылки

Для получения дополнительных сведений о событии Timer поиска в указателе справки дляСобытие таймера.

Свойства

Код статьи: 128814 - Последний отзыв: 12 ноября 2010 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 97 Standard Edition
Ключевые слова: 
kbhowto kbprogramming kbusage kbmt KB128814 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:128814
Заявление об отказе относительно содержимого статьи о продуктах, поддержка которых прекращена
Эта статья содержит сведения о продуктах, поддержка которых корпорацией Майкрософт прекращена. Поэтому она предлагается как есть и обновляться не будет.

Отправить отзыв

 

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