Пришел к следующему:
[vba]Код
Dim cn As New ADODB.Connection: Dim cs As New ADODB.Recordset
iSync = adConnectUnspecified: If ASync = True Then iSync = adAsyncConnect
cn.Open "provider=msolap;" & _
"persist security info=true;" & _
"user id=;" & _
"data source=" & Connection & ";" & _
"initial catalog=" & Catalog, , , iSync 'тут получилось запустить асинхронность, но как с этим работать я не понял
Do While cn.State = 2
DoEvents
Loop
cs.Open Mdx, cn 'это место все равно ждет, пока вернет ответ на mdx запрос. не хочет дальше без этого ни в какую.
Get_response = Vivesti_V_massiv(cs)
[/vba]