powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Progress bar
12 сообщений из 37, страница 2 из 2
Progress bar
    #39103036
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургJoss, а тут мало от меня зависит. Это стандартный контрол существующий с Win95. У тебя же есть пример с ним Описание элементов управления ActiveX (21 элемент) , там смотри Animation . Только не цепляем библиотек и рисуем в реальном времени.
AVI можно засунуть любую или эту подкорректировать.Ясно. А я когда-то для GIF начинал делать. Но не доделал. Где-то лежит. Брал Gif , раскладывал на кадры, а потом через таймер выводил в элемент Image. Даже что-то получалось.
...
Рейтинг: 0 / 0
Progress bar
    #39103110
Casper2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Правильное решение - использование многопоточности, но это в свою очередь ведет к другим проблемам... :) ( Потоки в Visual Basic )
...
Рейтинг: 0 / 0
Progress bar
    #39103143
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Casper2002, у меня всё работает без многопоточности
...
Рейтинг: 0 / 0
Progress bar
    #39103146
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Joss, где то я видел твою попытку, давненько уже...
...
Рейтинг: 0 / 0
Progress bar
    #39105554
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То Панург, у меня в задаче есть несколько мест с длительными вычислениями. Хотел туда пристроить этот прорессбар, но не удалось.
Там где происходит копирование базы (3-5 минут) там всё крутится. А вот где расчёты, там выводится только первый кадр avi и всё. Больше ничего не меняется. картинка висит без изменений. Потом, по окончанию рассчёта - исчезает.

Вот такие вот пироги.
...
Рейтинг: 0 / 0
Progress bar
    #39105590
А так?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
Option Compare Database
Option Explicit

Private WithEvents con As ADODB.Connection
Private Steps%

Private Sub Form_Load()
    Set con = CurrentProject.Connection
End Sub

Private Sub Form_Close()
    Set con = Nothing
    wait_avi.fWait.EndWait
End Sub

Private Sub cmdPushMe_Click()
    Steps = 1
    con.BeginTrans
    DoIt Steps
End Sub

Private Sub DoIt(n%)
    Dim s$
    Select Case n
    Case 1
    s = "select * into t from q"
    Case 2
    s = "update t set n=n + 1000"
    Case 3
    s = "delete from t"
    Case 4
    s = "drop table t"
    Case Else
        con.CommitTrans
        Exit Sub
    End Select
    Me.Info = "step " & n
    con.Execute s, , adAsyncExecute
End Sub

Private Sub con_WillExecute(Source As String, CursorType As ADODB.CursorTypeEnum, LockType As ADODB.LockTypeEnum, Options As Long, adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)
    'Запуск AVI
    wait_avi.fWait.StartWait
    DoEvents
End Sub

Private Sub con_ExecuteComplete(ByVal RecordsAffected As Long, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)
    'Стоп AVI
    wait_avi.fWait.EndWait
    
    If Not pError Is Nothing Then
          con.RollbackTrans
          MsgBox pError.Description, vbCritical, ""
          Exit Sub
    End If
    
    DoEvents
    Steps = Steps + 1
    DoIt Steps
End Sub

...
Рейтинг: 0 / 0
Progress bar
    #39105655
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предлагаете после каждого выполненного запроса выводить индикатор? Только там у меня в расчёте более полусотни исполняемых запросов и лепить после каждого вызов индикатора неохота. Хотелось бы запустить форму с индикатором перед запуском расчёта, а по окончанию закрыть. Но не получается.

Разве что многопоточность, но тут я плаваю...
...
Рейтинг: 0 / 0
Progress bar
    #39105704
JossПредлагаете после каждого выполненного запроса выводить индикатор? .
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
Option Compare Database
Option Explicit

Private WithEvents con As ADODB.Connection
Private Steps%

Private Sub Form_Load()
    Set con = CurrentProject.Connection
End Sub

Private Sub Form_Close()
    Set con = Nothing
    wait_avi.fWait.EndWait
End Sub

Private Sub cmdPushMe_Click()
    Steps = 1
    con.BeginTrans
    wait_avi.fWait.StartWait
    DoIt Steps
End Sub

Private Sub DoIt(n%)
    Dim s$
    Select Case n
    Case 1
    s = "select * into t from q"
    Case 2
    s = "update t set n=n + 1000"
    Case 3
    s = "delete from t"
    Case 4
    s = "drop table t"
    Case Else
        con.CommitTrans
        wait_avi.fWait.EndWait
        Exit Sub
    End Select
    Me.Info = "step " & n
    con.Execute s, , adAsyncExecute
End Sub

Private Sub con_WillExecute(Source As String, CursorType As ADODB.CursorTypeEnum, LockType As ADODB.LockTypeEnum, Options As Long, adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)
    'Старт AVI
    'wait_avi.fWait.StartWait
    DoEvents
End Sub

Private Sub con_ExecuteComplete(ByVal RecordsAffected As Long, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)
    'Стоп AVI
    'wait_avi.fWait.EndWait
    
    If Not pError Is Nothing Then
          con.RollbackTrans
          MsgBox pError.Description, vbCritical, ""
          Exit Sub
    End If
    
    DoEvents
    Steps = Steps + 1
    DoIt Steps
End Sub

...
Рейтинг: 0 / 0
Progress bar
    #39105727
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А куда вставлять con_WillExecute() и con_ExecuteComplete(()?

Некоторые запросы у меня выполняются в момент, а некоторые 2-3 минуты.
...
Рейтинг: 0 / 0
Progress bar
    #39106118
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JossТо Панург, у меня в задаче есть несколько мест с длительными вычислениями. Хотел туда пристроить этот прорессбар, но не удалось.
Там где происходит копирование базы (3-5 минут) там всё крутится. А вот где расчёты, там выводится только первый кадр avi и всё. Больше ничего не меняется. картинка висит без изменений. Потом, по окончанию рассчёта - исчезает.

Вот такие вот пироги.

А если вынести прогрессбар в отдельную базу и как то так (см.пример) ?
...
Рейтинг: 0 / 0
Progress bar
    #39106310
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_rusimport, Мысль интересная. Но уж больно не хочется создавать под это специальные базы. Начинаются вопросы об их позиционировании на экране. Правда это можно обойти развернув Access во весь экран. Бум думать и пробовать.
...
Рейтинг: 0 / 0
Progress bar
    #39107418
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_rusimport, покрутил, попробовал. В моём случае не подходит. У нас пользователи открывают сразу несколько задач и переключаются между ними. И в этом случае непривязанный к конкретному окну Access индикатор будет cмущать.
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Progress bar
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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