Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 1
  • 113

Dzień dobry.

Napisałem makro do odświeżania Power Query (konkretnie makro ma otwierać plik odświeżać finalne query a następnie zapisać i zamknąć plik).
Problem polega na tym, że kod vba nie czekał, aż query się odświeży. Dosyć pomocnym okazało się odznaczenie we właściwościach połączenia opcji "Enable background query". Wtedy widać, że makro czeka, aż połączenie się odświeży. Jednak po przeprocesowaniu całego makra (odświeżenie, zapisanie i zamknięcie), kiedy otwieram jeszcze raz plik, a następnie boczny pasek PowerQuery przy rzeczonym Query pokazuje mi się komunikat "Download did not complete".


Wyczytałem, że może tu pomóc polecenie "DoEvents" dodane po poleceniu odświeżenia - nie pomogło.
Dodałem też polecenie opóźnienia działania makra - to również nie pomogło.

Co prawda, query wygląda jakby się odświeżyło (przybywa rekordów), natomiast nie wiem czy wszystkie dane się prawidłowo podgrały - dużo kolumn, które mergują się z wielu tabel więc ciężko jest to sprawdzić.

Będę bardzo wdzięczny o korektę kodu w taki sposób, aby Query odświeżało się w prawidłowy sposób. Bardzo proszę o pomoc.

Sub Query_refresh()
sciezka2 = "C:\Users\testtest\Documents\MasterData\SharePoint\Customer.xlsx"
Customer_MD = Dir(sciezka2)

Workbooks.Open (sciezka2)
ActiveWorkbook.Connections("Query - Customer_MD_Merged").Refresh
DoEvents
Application.Wait Now + TimeValue("00:00:20")
Workbooks(Customer_MD).Save
Workbooks(Customer_MD).Close
End Sub

 

 

Cezary_Ziemkowski
  • Zapytał
  • @ Cezary_Ziemkowski | 19.10.2016
    • 2
    • 0
    • 1

Odpowiedź (1)

  • 0
  • Odpowiedział
  • @ | 21.10.2016
  • TRENER ALTKOM AKADEMII