|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
Общий модуль читает URL и при некоторых условиях должен подождать. В этот момент окрывается информирующая "формочка" с полем , где по умолчанию указано время открытия формы и две кнопки: "Продолжить" и "Завершить" В общем модуле цикл: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Последняя инструкция Код: vbnet 1.
даже лишняя. Log, Log2 - глобальные управляющие переменные Вот модуль формы: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Почему форма не закрывается? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2019, 06:09 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
Не ясна постановка вопроса. По подробнее можно? Не закрывается... Когда? По кнопке на форме? Из основного модуля? А пример базы? А под отладчиком прошли? Может программа в этот IF и не попадает? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2019, 08:30 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
Joss, Я так думаю останавливается таймер на форме когда вызывается другая форма ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2019, 09:25 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
DoEvents должно помочь ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2019, 09:26 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
Joss, спасибо за внимание. Поподробнее Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Пример "базы", полагаю не нужен, т.к. это однотабличная база (читаем URL, что-то выбираем и записываем в единственную таблицу). Но форма не закрывается. Да, забыл, Акссесс 2010, но файл .mdb созданный в Аксессе 2003. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2019, 09:33 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
ROIJoss, Я так думаю останавливается таймер на форме когда вызывается другая форма Да нет, программа через положенное время выходит из цикла и нормально продолжает работу. А эта форма висит. Закрываю "руками" все нормально продолжается. Отладчиком пробовал с остановкой на инструкции Close. Остановилось, продолжил, процесс продолжился, форма открыта. Где-то что-то очень простое ... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2019, 09:36 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
Игорь СROIJoss, Я так думаю останавливается таймер на форме когда вызывается другая форма Да нет, программа через положенное время выходит из цикла и нормально продолжает работу. А эта форма висит. Закрываю "руками" все нормально продолжается. Отладчиком пробовал с остановкой на инструкции Close. Остановилось, продолжил, процесс продолжился, форма открыта. Где-то что-то очень простое ... Хмм Может активировать форму хотя..... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2019, 10:36 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
Не понял вашу логику. В log2 пишется 1 перед перед DoCmd.Close по нажатию любой кнопки и даже на событии Form_Close. Т.е. форма уже закрывается, а в цикле снова команда DoCmd.Close. Может она лишняя и такой эффект? Если дождаться 30 мин., форма закроется? Если форму просто открыть и нажать кнопку - закрывается? Я бы в цикл добавил проверку - открыта ли форма. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2019, 10:54 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
Игорь С, if t1>t0+1800 or t1<t0... а будет ли это TRUE t0=timer,t1=timer-до присвоения значения t1 может пройти,от начала выполнения (а при пошаговом выполнении в окне отладки это условие выполнится) менее 1800 милисек,а t1 никогда не будет меньше t0 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2019, 10:56 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
Игорь С, а почему бы вам не открыть форму в режиме acDialog? Тогда и никакого цикла не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2019, 11:12 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
Кривцов Анатолий В log2 пишется 1 перед перед DoCmd.Close по нажатию любой кнопки и даже на событии Form_Close. Т.е. форма уже закрывается, а в цикле снова команда DoCmd.Close. Может она лишняя и такой эффект? Если дождаться 30 мин., форма закроется? Если форму просто открыть и нажать кнопку - закрывается? Я бы в цикл добавил проверку - открыта ли форма. Все лишние Close - это результать попыток все-таки ее закрыть . Форма не закрывается по истечении 1800 сек. Но алгоритм из цикла выходит и нормально продолжает работу. По нажатиям кнопок форма закрывается и тоже происходит все штатно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2019, 14:37 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
Кривцов Анатолий Цикл нужен, т.к. это основной режим работы. Программа подождет 30 мин и должна без вмешательства продолжить работу, что она и делает. Но форма висит и "немного мешает". Хотя можно закрыть руками. Попробую в режиме диалога. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2019, 14:42 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
Вместо If t1 > t0 + 1800 укажите If t1 > (t0 + 1800) Но режим диалога - лучшее решение. Если вам нужно организовать таймаут, то в форме укажите TimerInterval и закрывайте на событии Form_Timer. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2019, 15:31 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
Игорь С, если форму закрыть нельзя, значит метод docmd её не находит в коллекции Forms. попробуйте forms("Xpause").requery, goto control "Xpause"-вдруг поможет? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2019, 17:16 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
alecko, Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2019, 09:23 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
alecko, Код: vbnet 1. 2. 3.
Форма открылась, но не закрылась, без всяких таймеров и логики, с паузой по времени 5 секунд. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2019, 09:37 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
alecko, Сейчас попробую как Вы посоветовали. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2019, 09:38 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
Игорь Сalecko, Код: vbnet 1. 2. 3.
Форма открылась, но не закрылась, без всяких таймеров и логики, с паузой по времени 5 секунд. Переведите фокус на форму и сделайте активной должно сработать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2019, 10:21 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
Игорь С DoCmd.OpenForm "Xpause" Задержка_секунд(5) DoCmd.Close acForm, "Xpause" [/src] Форма открылась, но не закрылась, без всяких таймеров и логики, с паузой по времени 5 секунд. Это какая-то аномалия. А любая другая форма? Если закрывается, то сделайте дубль формы "Xpause" и попробуйте с ним. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2019, 12:25 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
Из статьи http://am.rusimport.ru/MSAccess/topic.aspx?ID=728 ... 3. Использовать функцию SendMessage (API) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Закрывается форма стандартно. происходят события Unload и Close . Заменив определение Private на Public описание функции и константы можно поместить в общий модуль. 4. Использовать функцию DestroyWindow (API) - не рекомендуется Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Описание функции можно поместить и в общем модуле как Public . Особенности. При использовании функции DestroyWindow не происходит событие Unload . Событие Close происходит. Никакие изменения на форме не сохраняются. Запрос на сохранение изменений не выдаётся. По-этому и не рекомендуется использовать эту функцию для закрытия форм в Access . --- Попробуйте ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2019, 12:43 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
Joss, ой, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2019, 15:37 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
Кривцов АнатолийИгорь С DoCmd.OpenForm "Xpause" Задержка_секунд(5) DoCmd.Close acForm, "Xpause" [/src] Форма открылась, но не закрылась, без всяких таймеров и логики, с паузой по времени 5 секунд. Это какая-то аномалия. А любая другая форма? Если закрывается, то сделайте дубль формы "Xpause" и попробуйте с ним. Сделал форму "Всплывающее окно" - уже открыть, подождать, закрыть (вне цикла с таймером) сработало. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2019, 18:06 |
|
Форма не закрывается по инструкции DoCmd.Close
|
|||
---|---|---|---|
#18+
есть ещё открытие формы как модуля класса-в этом случае о таких проблемах можно забыть Код: vbnet 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 13:21 |
|
|
start [/forum/topic.php?fid=45&msg=39764862&tid=1610891]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 317ms |
total: | 482ms |
0 / 0 |