Evento ExecuteComplete ADODB Connection não disparado com o parâmetro adAsyncExecute

Eu tenho um problema ao tentar capturar a conclusão de um procedimento armazenado executar de forma assíncrona.

Abaixo do meu código VBA (em um módulo de classe chamado 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

Esta classe é PublicNotCreatable.

Para chamar o sub execSPAsync de um módulo, utilizo o seguinte código:

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

O procedimento armazenado é muito simples:

alter PROC kp.sp_WaitFor
AS

WAITFOR DELAY '00:00:05'

Meu problema é que o evento ExecuteComplete não é disparado, enquanto se eu comentar o parâmetro adAsynExecute, tudo está funcionando bem. Alguma ideia de como resolver a minha pergunta?

questionAnswers(1)

yourAnswerToTheQuestion