powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как автоматизировать закрытие приложения.mdb ...
5 сообщений из 5, страница 1 из 1
как автоматизировать закрытие приложения.mdb ...
    #32539815
pifa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как автоматизировать закрытие приложения.mdb, с которым пользователь какое-то время не работает (не нажимает кнопки мыши и клавиатуры)?
...
Рейтинг: 0 / 0
как автоматизировать закрытие приложения.mdb ...
    #32539829
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делаешь отдельную пустую формочку в ней таймер взводящий флаг
если при повторном срабатывании таймер флаг взведен то DoCmd.Quit
формочку запускаешь из autoexec docmd.openform ...,acHidden

на все что ты считаешь активность вешаешь обработчик сбрасывающий флаг

минус схемы за несохраненные пользователем данные ответит PIFA

поэтому схема усложняется выдачей предупредительной формы(модальной и всплывающей) не MsgBox(он глушит таймер) со свистками и цветомузыкой для побудки пользователя

главный гемор - вызов в массе точек подпрограммки сброса флага
...
Рейтинг: 0 / 0
как автоматизировать закрытие приложения.mdb ...
    #32540025
pifa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо. если по ходу пьесы, пока буду мучить этот гемор, возникнет более лаконичный вариант, подскажи - буду признателен.
...
Рейтинг: 0 / 0
как автоматизировать закрытие приложения.mdb ...
    #32540056
pifa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ещё раз спасибо. дотумкал, сделал как велел Shuhard, обратился к классикам, процедура обработки события "Таймер" формы получилась такая:
Private Sub Form_Timer()
' источник идеи: "ACCESS 7.0 СОТНИ ПОЛЕЗНЫХ РЕЦЕПТОВ" М.Хоффбауер и К.Шпильман,
' BHV Киев 1996 - с.316
Static LastFormName As Variant 'имя последней активной формы
Static LastControlName As Variant 'имя последнего активного элемента управления
Static IdleTime As Long 'счётчик времени в секундах
Dim ActivFormName As Variant 'имя активной формы
Dim ActivControlName As Variant 'имя активного элемента управления

Const TimeLimit = 300 'время (секунды), по истечении которого
'приложение должно автоматически закрыться

On Error Resume Next

ActivFormName = Screen.ActiveForm.Name 'узнаём имя активной формы
ActivControlName = Screen.ActiveControl.Name 'узнаём имя
'активного элемента управления
On Error GoTo 0

If LastFormName <> ActivFormName Then 'если после предыдущего
'исполнения процедуры активной стала другая форма, то:
LastFormName = ActivFormName 'изменяем имя последней активной формы и
IdleTime = 0 'обнуляем счётчик времени
End If

If LastControlName <> ActivControlName Then 'так же проверяем,
'произошла ли смена активного элемента управления
LastControlName = ActivControlName
IdleTime = 0
End If

IdleTime = IdleTime + CLng(Me.TimerInterval / 1000) 'увеличиваем значение счётчика
'на один интервал таймера формы, приведённый к секундам

If IdleTime > TimeLimit Then 'если лимит исчерпан
IdleTime = 0
Application.Quit 'закрываем приложение
End If

End Sub
...
Рейтинг: 0 / 0
как автоматизировать закрытие приложения.mdb ...
    #32540063
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 Моя любимая книжка
2 что будет при вводе пользователем данных в длинное MEMO поле сидит и кропотливо бьет(с бумажного носителя)
использует 2 контрола последовательно т.е. успевает за время таймера сделать активным и вернуться назад
юзает ActiveX в рамках которого производит обмен информацией
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как автоматизировать закрытие приложения.mdb ...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]