Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: Силblч
короче разобрался так же как и TOAD
приложение теперь не залипает :))
оо4о не буду использовать

просто делаю цикл, с проверкой состояния запущено
пока оракл не раздуплится
пользователь видит вполне логичную картинку :))
тем более его предупреждали до того как!

а потом все корректно отрабатывает
как то так в общем

Private Sub btnCancel_Click()
    On Error GoTo err123
    If Err = 0 Then
        If MsgBoxC("Прерывание может занять несколько минут" & vbNewLine & _
                  "Вы действительно хотите прервать выполнение запроса к серверу?" _
                  , vbYesNo, "Подтвердите") = vbNo Then Exit Sub
    End If
    isCancel = 1
    frmState.state = 1
    timer_Stop
    If Not obj Is Nothing Then
        Me.capInfo.caption = "Прерываем..."
        SetStatus "Выполняется прерывание запроса на сервере..."
        '-- кнопку лочим
        Me.btnCancel.Locked = True
        '-- цикл, если все еще запущен, оборвем коннекшн и будем ждать
        Me.txtTimeOf = Format(TimeValue("00:00:00"), "hh:nn:ss")
        StartTime = Time()
        While obj.state = adStateExecuting '-- пока сервер не отпустит
            Me.txtTimeOf = Format(Abs(Time() - StartTime), "hh:nn:ss")
            Sleep 1: VBA.DoEvents
        Wend
        If obj.state = adStateOpen Or adStateFetching Then
            obj.Cancel
            obj.Close
        End If
        Set obj = Nothing
    End If
    Me.Hide
    VBA.DoEvents
    Exit Sub
err123:
    MsgBoxC Error, vbCritical, "Прерывание запроса"
    Exit Sub
End Sub


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.