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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Нужна помощь по progressbar (Acc 2010)
 
 автор: Kostya   (19.06.2012 в 16:38)   личное сообщение
 
 

Бодрого времени суток всем.

Исходные данные.
Есть база для печати "чего-то там". При запуске базы запускается форма, на Form_Load окно бд убирается посредством функции "ShowWindow Lib "user32...". Плюс пара запросов на добавление. Запросы отрабатывают секунд 10-15. На самой форме красивая картинка и прогрессбар. После Form_Load форма закрывается и открывается основная форма с кнопками всякими.

Что хотелось бы получить.
Запускается бд, окно бд прячется и остается красивая картинка с прогрессбаром, который весело елозит фиксированное время, одновременно с отработкой запросов. Форма с картинкой закрывается, открывается форма с кнопками.

Как работает сейчас.
Запускается бд, окно бд прячется, крутятся песочные виндовые часики (запросы отрабатывают, формы с картинкой и прогрессбаром не видно вообще), после выполнения кода появляется форма с кнопками.

Из всего вышеизложенного интересуют два вопроса.
1. На какое событие формы повесить код, чтобы форму было видно.
2. Как запустить прогрессбар.

Спасибо.

  Ответить  
 
 автор: ddi   (19.06.2012 в 17:09)   личное сообщение
 
 

При старте програмы твою форму
патом програсбар ставиш максимум типа = 10
патом прогрессбар .value += 1
потом есть событие прогрес бар макс там ставиш me.close()
и открить твою форму сорри аксса под рукой нету

  Ответить  
 
 автор: Kostya   (19.06.2012 в 17:26)   личное сообщение
 
 

Если честно, то ничего не понял

Запуск формы установлен в свойствах бд. Запускается база - запускается форма.

По большому счету хрен с ним с прогрессбаром. Картинки не видно. Форма запускается, код отрабатывается, форма закрывается. Сама картинка на форме на экран не выводится :(

  Ответить  
 
 автор: snipe   (19.06.2012 в 17:49)   личное сообщение
 
 

надо воткнуть

DoEvents 

может даже в нескольких местах

  Ответить  
 
 автор: Kostya   (19.06.2012 в 18:07)   личное сообщение
 
 

"Истыкал" весь код на Form_Load. Контур формы появляется на доли секунды, после чего пропадает и идет выполнение кода :(

  Ответить  
 
 автор: snipe   (19.06.2012 в 18:17)   личное сообщение
 
 

Покажите код на form_load

  Ответить  
 
 автор: Kostya   (19.06.2012 в 18:20)   личное сообщение
 
 


Private Sub Form_Load()
        
        DoCmd.SetWarnings False
        DoCmd.RunCommand acCmdAppMaximize
        ShowWindow Application.hWndAccessApp, SW_HIDE

        DoCmd.RunSQL "DELETE ..."

        DoCmd.OpenQuery "qry_UPDATE..."
        DoCmd.OpenQuery "qry_UPDATE_1..."
        DoCmd.OpenQuery "qry_UPDATE_2..."
        DoCmd.OpenQuery "qry_UPDATE_3..."

    DoCmd.OpenForm "frm_Main"
    DoCmd.Close acForm, "frm_timer"

End Sub

  Ответить  
 
 автор: snipe   (19.06.2012 в 18:31)   личное сообщение
 
 

если честно то не правильно как-то это

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

в модулях создайте публичную функцию и там пропишите все что хотите сделать

дело в том что событие загрузка происходит раньше чем событие отображение
отсюда у вас и все проблемы

  Ответить  
 
 автор: Kostya   (19.06.2012 в 18:46)   личное сообщение
 
 

Согласен, не по феншую

Но, как обычно, делалась маленькая финтифлюшка, для которой подобный сплаш-скрин и нафиг не нужен был. А тут разросшуюся тушку быстро надо стало подточить напильником. Затупил с событиями.
Спасибо за вариант.

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

Form_Load и даже Form_Activate возникают ДО появления формы на экране.
Попробуйте использовать Form_Timer. Т.е. указываете в св-ве TimerInterval небольшое значение (например 10), весь код переносите в Form_Timer, а первой командой сбрасываете TimerInterval в 0.

  Ответить  
 
 автор: Kostya   (19.06.2012 в 18:48)   личное сообщение
 
 

Таки да

Никогда не умел пользоваться этой штукой. Спасибо

  Ответить  
 
 автор: kot_k_k   (20.06.2012 в 09:13)   личное сообщение
 
 


orm_Load окно бд убирается посредством функции "ShowWindow Lib "user32...".



а почему его не спрятать "системно", убрав галочку в "Параметры запуска.... Окно базы данных"

п.с. может в 2010 его и нету, или оно по другому называется, или спрятано глубоко-глубоко.

  Ответить  
 
 автор: ddi   (20.06.2012 в 09:29)   личное сообщение
 
 

2 kot_k_k да всё там в 2010 есть)

  Ответить  
 
 автор: kot_k_k   (20.06.2012 в 10:15)   личное сообщение
 
 

офис 2007-.... похож на клад - потому что клад это то что зарыто! глубоко-глубоко.

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