ExecuteComplete ADODB-Verbindungsereignis wird nicht mit dem Parameter adAsyncExecute ausgelöst

Ich habe ein Problem beim Versuch, den Abschluss eines gespeicherten Prozesses zu erfassen, der asynchron ausgeführt wird.

Unterhalb meines Code-VBA (in einem Klassenmodul mit dem Namen 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

Diese Klasse ist PublicNotCreatable.

Um das Sub-ExecSPAsync von einem Modul aufzurufen, verwende ich den folgenden Code:

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

Die gespeicherte Prozedur ist sehr einfach:

alter PROC kp.sp_WaitFor
AS

WAITFOR DELAY '00:00:05'

Mein Problem ist, dass das Ereignis ExecuteComplete überhaupt nicht ausgelöst wird, während, wenn ich den Parameter adAsynExecute kommentiere, alles gut funktioniert. Irgendeine Idee, wie ich meine Frage lösen kann?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage