Событие соединения ExecuteComplete ADODB не было запущено с параметром adAsyncExecute

У меня есть проблема, пытаясь поймать завершение хранимой процедуры выполнения асинхронно.

Ниже мой код VBA (в модуле класса с именем clsAsync):

Option Explicit

Private WithEvents cnn As ADODB.Connection


Private Sub cnn_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)
    MsgBox "Execution completed"
End Sub

Sub execSPAsync()
    Set cnn = New ADODB.Connection
    Set rst = New ADODB.Recordset
    cnn.ConnectionString = "connection to my database SQLSEREVER"
    cnn.Open
    cnn.Execute "kp.sp_WaitFor", adExecuteNoRecords, adAsyncExecute
End Sub

Этот класс является PublicNotCreatable.

Для вызова sub execSPAsync из модуля я использую следующий код:

Sub testASYNC()
    Dim a As New clsAsync
    Call a.execSPAsync
End Sub

Хранимая процедура очень проста:

alter PROC kp.sp_WaitFor
AS

WAITFOR DELAY '00:00:05'

Моя проблема в том, что событие ExecuteComplete вообще не запускается, а если я прокомментирую параметр adAsynExecute, все работает нормально. Есть идеи, как решить мой вопрос?

Ответы на вопрос(1)

Ваш ответ на вопрос