Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / временная остановка процедуры / 25 сообщений из 32, страница 1 из 2
27.07.2004, 10:38:09
    #32622556
Nikolay Gerasimov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
Кто может подсказать как можно приостановить на некоторое время выполнение модуля?
...
Рейтинг: 0 / 0
27.07.2004, 10:40:21
    #32622562
Stepler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
В процедуре поставить либо "Stop", либо красный круг, либо задержку таймером...
Stepler (щёлк-щёлк!!)
...
Рейтинг: 0 / 0
27.07.2004, 10:42:52
    #32622574
Nikolay Gerasimov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
SteplerВ процедуре поставить либо "Stop", либо красный круг, либо задержку таймером...
Stepler (щёлк-щёлк!!)

не подскажете на счет таймера, как сделать?
В Helpe размыто както написано.
...
Рейтинг: 0 / 0
27.07.2004, 10:46:44
    #32622591
_bob
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
если хочешь приостановить ход программы до какого-то действия юзера, выведи диалоговую форму, если просто чтобы код минутку постоял, поставь Sleep, а если знаешь хэндл процесса, конца которого дожидаешься - waitforsingleobject, это самое правильное решение, потому что ты действительно дожидаешься окончания и в то же время можно указать, через какое время прекратить ожидание
...
Рейтинг: 0 / 0
27.07.2004, 10:51:26
    #32622608
Nikolay Gerasimov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
_bobесли хочешь приостановить ход программы до какого-то действия юзера, выведи диалоговую форму, если просто чтобы код минутку постоял, поставь Sleep, а если знаешь хэндл процесса, конца которого дожидаешься - waitforsingleobject, это самое правильное решение, потому что ты действительно дожидаешься окончания и в то же время можно указать, через какое время прекратить ожидание
Суть вопроса следующая:
необходимо из Accessa запустить работу независимого приложения, выждать 1 минуту, пока то приложение соберет данные в файл, затем обработать эти данные и записать в таблицу на SQL Server
...
Рейтинг: 0 / 0
27.07.2004, 10:52:23
    #32622613
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
do until чего надо
doevents
loop
...
Рейтинг: 0 / 0
27.07.2004, 11:10:49
    #32622691
Nikolay Gerasimov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
И все-таки в доках про sleep ничего нати не могу.
Может кто нибудь напишет какой нибудь код с его использованием или с использованием функции Timer???
...
Рейтинг: 0 / 0
27.07.2004, 11:16:14
    #32622713
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
Мой вариант не годится?
...
Рейтинг: 0 / 0
27.07.2004, 11:23:35
    #32622736
Nikolay Gerasimov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
Владимир СанычМой вариант не годится?
цикл это хорошо, но в зависимости от загруженности компа не дает точного интервала времени, это очень важно. Хорошо если данные успеют собраться за этот интервал, а если нет? Растягивать процедуру тоже не очень хочеться, теряется оперативность.
...
Рейтинг: 0 / 0
27.07.2004, 11:26:05
    #32622745
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
Во-первых, условие выхода из цикла можно сделать и по проверке Time.

Во-вторых, все-таки надежнее проверять не "точный интервал времени", а именно окончание того процесса, который должен завершиться.
...
Рейтинг: 0 / 0
27.07.2004, 11:37:58
    #32622784
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
А всё таки - чего хотим дождаться ?
...
Рейтинг: 0 / 0
27.07.2004, 11:39:16
    #32622791
rush
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
http://msa.polarcom.ru/st/d_1000445.htm
...
Рейтинг: 0 / 0
27.07.2004, 11:47:54
    #32622815
Nikolay Gerasimov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
Владимир СанычВо-первых, условие выхода из цикла можно сделать и по проверке Time.

Во-вторых, все-таки надежнее проверять не "точный интервал времени", а именно окончание того процесса, который должен завершиться.
Я понял, это было бы замечательно, но я уже говорил что приложение независимое от ACCESSA, определить окончание его работы я не знаю как.
Можете представить себе нечто вроде notepad в котором запускается скрипт через меню, результатом его работы - Lod файл, который и используется для обратотки.
Кстати может подскажете еще и следующее: Использую для запуска скрипта написанного на Windows Script Host следующий код:

Call Shell("C:\Documents and Settings\Администратор\Рабочий стол\test1.wsf")

Пишет "Invalid procedure coll or argument". Не понятно на что ругается ?
...
Рейтинг: 0 / 0
27.07.2004, 12:19:42
    #32622921
Nikolay Gerasimov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
rushhttp://msa.polarcom.ru/st/d_1000445.htm
А вы сами не пробовали использовать данный код?
У меня комп ругается на сл блок:

Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal _
hHandle As Long, ByVal dwMilliseconds As Long) As Long

Пишет Only comments may appear after end Sub, end function, or end property????
...
Рейтинг: 0 / 0
27.07.2004, 12:23:32
    #32622934
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
Nikolay GerasimovЯ понял, это было бы замечательно, но я уже говорил что приложение независимое от ACCESSA, определить окончание его работы я не знаю как.
Можете представить себе нечто вроде notepad в котором запускается скрипт через меню, результатом его работы - Lod файл, который и используется для обратотки.

Почему нельзя в качестве условия выхода из цикла взять проверку существования файла?
...
Рейтинг: 0 / 0
27.07.2004, 12:25:55
    #32622945
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
Ловите

Declare Function TerminateProcess Lib "kernel32.dll" (ByVal h As Long, ByVal rc As Long) As Long
Declare Function WaitForSingleObject Lib "kernel32.dll" (ByVal h As Long, ByVal rc As Long) As Long
Declare Function GetExitCodeProcess Lib "kernel32.dll" (ByVal h As Long, s As Long) As Long

Function RunTask(TS As String, tmo As Long, Optional mode = vbHide) As Long
Dim PID, h, rc As Long
Dim s As Long
PID = 0
RunTask = -1

On Error Resume Next
PID = Shell(TS, mode)
If PID = 0 Then Exit Function

h = OpenProcess(&H1F0FFF, 0, PID)
If h = 0 Then Exit Function

rc = WaitForSingleObject(h, tmo * 1000)
If rc = WAIT_TIMEOUT Or rc = WAIT_FAILED Then
rc = TerminateProcess(h, STILL_ACTIVE)
If rc = 0 Then
CloseHandle (h)
Exit Function
End If
Sleep (1000)
End If

rc = GetExitCodeProcess(h, s)
If rc <> 0 Then RunTask = s

CloseHandle (h)
Exit Function
End Function
...
Рейтинг: 0 / 0
27.07.2004, 12:27:44
    #32622950
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
Константы забил.


Public Const WAIT_TIMEOUT = 258
Public Const WAIT_ABANDONED = 128
Public Const WAIT_OBJECT_0 = 0
Public Const WAIT_FAILED = &HFFFFFFFF
Public Const STILL_ACTIVE = &H103
...
Рейтинг: 0 / 0
27.07.2004, 12:29:54
    #32622960
Unicco
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
Вот так - правильнее. Саныч, потри предыдущий пост, плиз :)

Nikolay GerasimovЯ понял, это было бы замечательно, но я уже говорил что приложение независимое от ACCESSA, определить окончание его работы я не знаю как.
В таком случае тебе совет _боба очень поможет:
_bobа если знаешь хэндл процесса, конца которого дожидаешься - waitforsingleobject, это самое правильное решение, потому что ты действительно дожидаешься окончания и в то же время можно указать, через какое время прекратить ожидание

Nikolay Gerasimov
Кстати может подскажете еще и следующее: Использую для запуска скрипта написанного на Windows Script Host следующий код:

Call Shell("C:\Documents and Settings\Администратор\Рабочий стол\test1.wsf")

Пишет "Invalid procedure coll or argument". Не понятно на что ругается ?
А это случайно у тебя не ярлык? На него именно такое вылетает. Как побороть - пока не понял :) На отсутствие файла он ругается "File not found".
...
Рейтинг: 0 / 0
27.07.2004, 12:36:22
    #32622994
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
UniccoСаныч, потри предыдущий пост, плиз :)
Done.
...
Рейтинг: 0 / 0
27.07.2004, 12:39:21
    #32623006
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
Шеллу нужно подсовывать путь к исполняему файлу

Если лениво искать, то можно написать
Shell (Environ$("COMSPEC") & " /C " & path)
...
Рейтинг: 0 / 0
27.07.2004, 12:44:17
    #32623020
Nikolay Gerasimov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
Владимир Саныч Nikolay GerasimovЯ понял, это было бы замечательно, но я уже говорил что приложение независимое от ACCESSA, определить окончание его работы я не знаю как.
Можете представить себе нечто вроде notepad в котором запускается скрипт через меню, результатом его работы - Lod файл, который и используется для обратотки.

Почему нельзя в качестве условия выхода из цикла взять проверку существования файла?
А это мысль. Благодарю. Хотя файл создается во время ее выполнения, но можно попробовать проверять его размер. Пока растет значит выполняется. остановился - значит все!
...
Рейтинг: 0 / 0
27.07.2004, 12:47:08
    #32623030
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
Nikolay GerasimovХотя файл создается во время ее выполнения, но можно попробовать проверять его размер. Пока растет значит выполняется. остановился - значит все!
Есть другой вариант. Пробовать открывать файл для письма. Если ошибка, значит рано. Если нет, значит закрываем и выходим из цикла.

Правда, это не получится, если та программа в процессе письма все время открывает и закрывает его.
...
Рейтинг: 0 / 0
27.07.2004, 12:53:11
    #32623056
Nikolay Gerasimov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
Alexey ShШеллу нужно подсовывать путь к исполняему файлу

Если лениво искать, то можно написать
Shell (Environ$("COMSPEC") & " /C " & path)
не совсем понятно что происходит вроде бы комменда обработана, но скрипт не запущен.????
...
Рейтинг: 0 / 0
27.07.2004, 12:56:16
    #32623071
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
Тогда вместо ключика /C поставь /K - cmd(command) никуда не слиняет и посмотри что он кажет
...
Рейтинг: 0 / 0
27.07.2004, 13:07:04
    #32623098
Nikolay Gerasimov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
временная остановка процедуры
Alexey ShТогда вместо ключика /C поставь /K - cmd(command) никуда не слиняет и посмотри что он кажет
Да, интересно. Запускается коммандная строка. Но это не то что надо.
Может можно както попробовать открыть этот скрипт (т.е. давать коммнду не на запуск, а на открытие)???
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / временная остановка процедуры / 25 сообщений из 32, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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