Можно ли использовать Smart View VBA HypConnect для подключения к приложению, но не активировать его на листе? - PullRequest
1 голос
/ 15 февраля 2020

При использовании HypConnect в Excel он автоматически активирует соединение с листом, на котором оно находится при запуске макроса. Однако если вы выберете «Подключиться» на панели Smart View, он подключится к приложению / базе данных, но не активирует его ни на одном листе.

У меня есть отчет, в котором используются подключения к нескольким приложениям / базам данных. К сожалению, первый HypConnect активирует это приложение / базу данных на текущем листе, а затем игнорирует остальные запросы на подключение. Мне это нужно только для подключения к приложениям / базам данных, а затем остальная часть макроса заботится о необходимости обновления рабочих листов. Остальная часть макроса работает, если я подключаюсь к каждому приложению / базе данных вручную перед его запуском.

Я использую 64-разрядную версию Microsoft Office 365 Excel версии 1910 (сборка 12130.20390) в 64-разрядной Windows 10 версии Enterprise (v10) .0.17763). SmartView - это версия 11.1.2.5.710 (сборка 127), а Essbase - 11.1.2.3.508

Вот пример кода, который я пытаюсь использовать:

Public Declare PtrSafe Function HypConnect Lib "HsAddin" (ByVal vtSheetName As Variant, ByVal vtUserName As Variant, ByVal vtPassword As Variant, ByVal vtFriendlyName As Variant) As Long
Public Declare PtrSafe Function HypDisconnectAll Lib "HsAddin" () As Long
Public Declare PtrSafe Function HypMenuVRefreshAll Lib "HsAddin" () As Long
Sub RunAllFreaks()


x = HypConnect("Empty", "UserName", "Password", "EssbaseCluster-p_FXAPAC_FXAPAC")
x = HypConnect("Empty", "UserName", "Password", "EssbaseCluster-qa_FXAPAC_FXAPAC")
x = HypConnect("Empty", "UserName", "Password", "EssbaseCluster-p_FXEMLA_FXEMLA")
x = HypConnect("Empty", "UserName", "Password", "EssbaseCluster-qa_FXEMLA_FXEMLA")
x = HypConnect("Empty", "UserName", "Password", "EssbaseCluster-p_FXGP_FXGP")
x = HypConnect("Empty", "UserName", "Password", "EssbaseCluster-qa_FXGP_FXGP")
x = HypConnect("Empty", "UserName", "Password", "EssbaseCluster-p_FXNA_FXNA")
x = HypConnect("Empty", "UserName", "Password", "EssbaseCluster-qa_FXNA_FXNA")

Worksheets("Setup Recon Tabs").Range("Recon1_App1_Connection").Value = "EssbaseCluster-p_FXAPAC_FXAPAC"
Worksheets("Setup Recon Tabs").Range("Recon1_App2_Connection").Value = "EssbaseCluster-qa_FXAPAC_FXAPAC"
Worksheets("Setup Recon Tabs").Range("Recon2_App1_Connection").Value = "EssbaseCluster-p_FXAPAC_FXAPAC"
Worksheets("Setup Recon Tabs").Range("Recon2_App2_Connection").Value = "EssbaseCluster-qa_FXAPAC_FXAPAC"
Worksheets("Setup Recon Tabs").Range("Recon4_App1_Connection").Value = "EssbaseCluster-p_FXAPAC_FXAPAC"
Worksheets("Setup Recon Tabs").Range("Recon4_App2_Connection").Value = "EssbaseCluster-qa_FXAPAC_FXAPAC"

Worksheets("Entity").Range("PARAM_StartIndex").Value = 1
Worksheets("Entity").Range("PARAM_EndIndex").Value = 8

RefreshDataAll

Worksheets("Setup Recon Tabs").Range("Recon1_App1_Connection").Value = "EssbaseCluster-p_FXEMLA_FXEMLA"
Worksheets("Setup Recon Tabs").Range("Recon1_App2_Connection").Value = "EssbaseCluster-qa_FXEMLA_FXEMLA"
Worksheets("Setup Recon Tabs").Range("Recon2_App1_Connection").Value = "EssbaseCluster-p_FXEMLA_FXEMLA"
Worksheets("Setup Recon Tabs").Range("Recon2_App2_Connection").Value = "EssbaseCluster-qa_FXEMLA_FXEMLA"
Worksheets("Setup Recon Tabs").Range("Recon4_App1_Connection").Value = "EssbaseCluster-p_FXEMLA_FXEMLA"
Worksheets("Setup Recon Tabs").Range("Recon4_App2_Connection").Value = "EssbaseCluster-qa_FXEMLA_FXEMLA"

Worksheets("Entity").Range("PARAM_StartIndex").Value = 9
Worksheets("Entity").Range("PARAM_EndIndex").Value = 16

RefreshDataAll
...