Хотите отследить любые ошибки в соединении OLEDBC из-за учетных данных или разрешений пользователя, но MSOLAP.8 («Подключение служб Analysis Services 14.0») всегда запрашивает исправленные параметры.В качестве обходного пути я могу понизиться до MSOLAP.7 для желаемого поведения.
Среда - VBA в Excel 365. MSOLAP.8 не вызовет ошибку, которую можно отследить, пока пользователь не нажмет «Отмена» в диалоговом окне.Хочу избегать этого диалога, так как он содержит настройки (сервер, куб), которые могут запутать некоторых пользователей.
Я безуспешно пытался отключить диалоговое окно следующих утверждений ...
Application.EnableEvents = False
Application.DisplayAlerts = False
... а также просмотр всех параметров подключения MSOLAP.8 для возможного решения.
Private Sub btn_Refresh_Click()
On Error GoTo connection_error
Application.EnableEvents = False
Application.DisplayAlerts = False
With ActiveWorkbook.Connections("xxx").OLEDBConnection
.CommandText = Array("xxx")
.CommandType = xlCmdCube
.Connection = Array( _
"OLEDB;Provider=MSOLAP.8;Password=""" & Me.txt_Pwd & """;Persist Security Info=True;User ID=" & Me.txt_User & ";Catalog=xxx;Data Source=http" _
, _
"://xxx.xxx.xxx.xxx.xxx:xxx/xmla/default;MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error;Update " _
, "Isolation Level=2")
.RefreshOnFileOpen = False
.SavePassword = False
.SourceConnectionFile = ""
.MaxDrillthroughRecords = 1000
.ServerCredentialsMethod = xlCredentialsMethodNone
.AlwaysUseConnectionFile = False
.RetrieveInOfficeUILang = True
End With
With ActiveWorkbook.Connections("xxx")
.Name = "xxx"
.Description = "xxx"
End With
ActiveWorkbook.Connections("xxx").OLEDBConnection.MakeConnection
ActiveWorkbook.Connections("xxx").Refresh
Unload Me
Exit Sub
connection_error:
MsgBox "You have either entered the wrong ID and password, or you do not have permission to view this data."
End Sub