Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: нужен таймер, или пауза, и возможность остановить скрипт
 
 автор: OlegEk   (15.07.2007 в 16:17)   личное сообщение
 
 

запускаю скрипт, открываю рекордсет, проверяю наличие файла, если файла нет, запускаю цикл, снова проверяю, и так по кругу. Но скорость выполнения очень сильно зависит от производительности конкретного компьютера, и цикл крутится с разной скоростью. К тому же этот цикл сильно подгружает компьютер, и всё остальное в это время отдыхает :(
Есть возможность уже после открытия рекордсета проверять наличие файла (точнее запускать любую операцию) например 1 раз в секунду, без всяких промежуточных циклов?
И как сделать так, чтобы при нажатии на какую либо клавишу скрипт останавливался? например по Esc.

  Ответить  
 
 автор: Nadin   (16.07.2007 в 06:45)   личное сообщение
 
 

А если просто останавливать горячими клавишами, например Ctrl+Break?

  Ответить  
 
 автор: osmor   (16.07.2007 в 09:47)   личное сообщение
 
 

http://hiprog.com/index.php?option=com_content&task=view&id=356
а проверять лучше по таймеру (в форме есть такое событие)

  Ответить  
 
 автор: OlegEk   (16.07.2007 в 12:41)   личное сообщение
 
 

Про "ESC" отлично :-)
По таймеру из формы не годится. нужно запускать следующий этап обработки уже внутри рекордсета через определённый промежуток времени (достаточный для обработки предыдущего файла). А если по таймеру, то рекордсет будет открываться каждый раз заново. Хотя конечно если проставлять признак "обработки", то оно будет срабатывать.
Просто подумал что можно вставить в текст скрипта что-нить типа timer(2sec). Это было бы для меня идеально

  Ответить  
 
 автор: osmor   (16.07.2007 в 13:04)   личное сообщение
 
 

вот это не поможет?
http://hiprog.com/index.php?option=com_content&task=view&id=251661564&Itemid=35
есть еще API
Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long

  Ответить  
 
 автор: Анатолий (Киев)   (16.07.2007 в 18:56)   личное сообщение
 
 

Еще есть:
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Но можно и средствами VBA:
sngTimer=Timer
Do While (Timer-sngTimer)<2
DoEvents
Loop

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList