Управление выходом в MS Access для обновления графического интерфейса и обработки событий формы - PullRequest
0 голосов
/ 05 июля 2011

Я использую VBA в MS Access для выбора и передачи данных из таблицы в веб-сервис. Данные отправляются частями, поэтому время выполнения xmlhttprequest довольно короткое. Поскольку скрипт запускается в потоке графического интерфейса, во время загрузки Access становится не ответственным, а форма не обновляется.

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

Private Sub do_stuff()
    lblOperation.Caption = "Doing stuff"
    lblProgress.Caption = "0"

    Dim rs As Recordset
    Dim chunk As String

    ' ... make query ...

    Do While Not rs.EOF
        ' ... collect data to be sent ...
        rs.MoveNext

        n = n + 1
        If n > 50 Or rs.EOF Then
            ' send chunk
            lblProgress.Caption = "Doing progress..."
            send_chunk(chunk)

            ' Give Access control, so it can pump messages and update form
            ' Something like Application.ProcessMessages in delphi

            chunk = ""
            n = 0
        End If
    Loop
    rs.Close
End Sub

1 Ответ

1 голос
/ 05 июля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...