Power Queries ferngesteuert aktualisieren
#1
Anbei einer Mappe, mit der Power Queries, die sich in beliebigen Mappen befinden können, ferngesteuert aktualisiert werden können. Wenn der Testschalter aktiv ist, dann kann die Mappe auch einfach nur zur Laufzeitmessung verwendet werden.

Damit aber die Laufzeiten korrekt ermittelt werden können, muss in den entsprechenden Abfragen die Option "Aktualisierung im Hintergrund zulassen" deaktiviert sein.

Da ich auch eine Mappe habe, mit der mehrere Hundert Websites importiert werden können, habe ich in der betreffenden  Mappe realsisiert, dass ein Gesamtabrauf auf mehrere Portionen aufgeteilt werden kann.

Um dies aber auch ferngesteuert triggern zu können, gibt es in der Steuertabelle die Spalte "Repeats", in der die Anzahl der Aktualisierungsaufrufe eingetragen werden kann.

Im Tabellenblatt "Log" werden alle Aktualisierungen protokolliert.

Zur summarischen Auswertung des Protokolls sind in der Mappe noch 2 Abfragen enthalten.

Damit die Aktualisierungen auch laufen können, muss in G2 noch das sprachabhängige Präfix korrekt eingetragen werden.


Angehängte Dateien
.xlsm   Remote refresh Power Queries.xlsm (Größe: 54,63 KB / Downloads: 7)
Antworten Top
#2
Hall WS-53,

ich habe Dein ferngesteuerte PQ-Refresh-Makro getestet und dabei festgestellt:
- für den Anwender sieht es so aus, als ob der Refresh-Zyklus 2x gemacht wird (siehe Zelle T1!G2)
- tatsächlich wird die Aktualisierung aber 2 * 5  = 10 mal durchgeführt
- da es noch eine nicht sichtbare Spalte 'Repeat' im Listobjekt 'tbl_remote_refresh' der Tabelle 'T1' gibt
  und da steht eine 5 drin
- es gibt keine Fehlerbehandlungen, wenn die Exceldatei im angegebenen Verzeichnis nicht existiert
  oder wenn die angegebene PQ-Abfrage in der Exceldatei nicht vorhanden ist.
- muß die zu aktualisierende Exceldatei erst geöffnet werden, dann sollte zu Abschluß 1 Meldungsbox erscheinen
  mit der Auswahl schließen oder geöffnet lassen
- 1 generelle Fertigmeldung habe ich mir schon eingebaut.
- ansonsten aber eine prima Vorlage und zur weiteren Verwendung zu empfehlen (solange Vba in den
  Firmen nicht weiter so verteufelt wird).

Gruß von Luschi
aus klein-Paris

PS: Hast Du 1 Möglichkeit gefunden, die von Dir erstellten und im MS-Office-Forum veröffentlichten PQ-Beispiele irgendwo wiederzubeleben?
Antworten Top
#3
Hallo Luschi,

vielen Dank für dein Feedback.

Ursprünglich hatte ich die dazugehörige Ur-Mappe nur erstellt, um die Laufzeiten von Power Queries zu ermitteln. Deshalb auch der außerhalb der Tabelle liegende Wiederholungsparameter "pm_repeats" in Zelle G2. Somit wird im Falle eines Testlaufs, die Tabelle entsprechend häufig durchlaufen.

Die Spalte "Repeats" innerhalb der Tabelle ist ganz neu und durch BoskoBiatis ICE-Auswertung hinzugekommen. Denn die Abfrage von mehr als 400 ICE-Verbindungen läuft knapp 10 Min. und bricht manchmal ab, weil  wohl der DB-Server teilweise überlastet ist. deswegen habe ich dort die häppchenweise Aktualisierung realisiert. Um diese auch "remote" nutzen zu können, hätte ich natürlich entsprechend viele Zeilen in die Steuertabelle einfügen können. Aber die Spalte "Repeats" fand ich eleganter. Somit wenn außen 2 und innen 5 steht, bedeutet dies 2 mal 5  Aktualisierungen. Insgesamt also 10.

Bei mir ist die Spalte "E" auch sichtbar, da ich diese auch nie ausgeblendet habe. Könnte sein, dass du diese weggescrollt hast.

Zitat:- es gibt keine Fehlerbehandlungen, wenn die Exceldatei im angegebenen Verzeichnis nicht existiert

Ja das ist richtig, war für mich bisher auch nicht notwendig, denn meist nutze ich diese tabellengesteuerte Aktualisierung in Mappen, in denen ich mehrere Abfragen aktualisiere. In meiner Rommé-Mappe sind es über 30 Abfragen, die ich tabellengesteuert aktualisiere und immer sehen kann, wie lange die einzelnen Aktualisierungen gelaufen sind.

Zitat:- muß die zu aktualisierende Exceldatei erst geöffnet werden, dann sollte zu Abschluß 1 Meldungsbox erscheinen

War sie offen, bleibt sie offen. War sie geschlossen, dann wird sie wieder geschlossen. Aber das kann jeder anpassen wie er möchte.

Zitat:- 1 generelle Fertigmeldung habe ich mir schon eingebaut.

Ja, das ist ja eine Kleinigkeit, die ich bisher aber noch nicht gebraucht hatte.

Stattdessen hatte ich das Ganze mal in die Aufgabenplanung eingebunden, um täglich vollautomatisch Infos von websites zu importieren. Dazu hatte ich im mof auch einen Beitrag erstellt.

Die Mappen zu den PQ-Beiträgen, die ich im mof erstellt habe, die habe ich auch noch alle. Aber da ich nicht auf die Idee kam, dass es das mof mal nicht mehr geben könnte, habe ich nicht die Beitragstexte gesichert.
Antworten Top
#4
Ich hatte in eine Mappe, die mit mit Sprache "englisch" erstellt wurde, zusätzliche Power Queries eingefügt, und dann, weil es nicht lief wie es sollte , festgestellt, dass die bereits in der Mappe enthaltenen Abfragen das Präfix "Query - " haben, meine neuen jedoch "Abfrage - ". 

Da ich aber keine Lust hatte, die Präfix-Steuerung in die Tabellenzeile zu verlagern, zumal ich diese dann ja zuerst einmal jeweils ermitteln müsste, habe ich die Logik auf automatische Erkennung umgestellt. Dabei wird nun Name der Connection bei " - " getrennt und diese immer dann aktualisiert, wenn der Rechte Teil der Trennung mit dem aktuellen Tabelleneintrag übereinstimmt.

Anbei die neue Version.


Angehängte Dateien
.xlsm   Remote refresh Power Queries.xlsm (Größe: 62,22 KB / Downloads: 4)
Antworten Top
#5
Hallo ws-53,

weil ich neugierig bin, habe ich natürlich auch diese Version getestet:
- Dateipfade und Dateinamen  angepaßt
- sowie die entsprechenden PQ-Abfragen angegeben
Beim Aktualisieren der PQ-Abfragen von 'Geert Delmulle' aus dem letzten GoodLy-Video kam diese Hinweismeldung:
 [img]Userbild[/img]

Nach ein bißchen  Steppen des Codes im Einzelschritt war die Ursache schnell gefunden:
- die Datei sollte schon wieder geschlossen werden, obwohl  die Queries aber noch nicht voll updated sind:
- Ursache: die BackgroundQuery-Eigenschaft der Abfragen steht auf True statt False
- Meine Lösung:
Code:
  Dim BGQ As Boolean
  BGQ = conn.OLEDBConnection.BackgroundQuery
  conn.OLEDBConnection.BackgroundQuery = False
  conn.Refresh
  'erst nach dieser Aktualisierung erfolgt der nächste Vba-Befehl
  conn.OLEDBConnection.BackgroundQuery = BGQ
- jetzt wartet der Vba-Code, bis die Aktualisierung der Query abgeschlossen ist
- aber der Ausgangszustand der Query wird auch wieder hergestellt.

Gruß von Luschi
aus klein-Paris
Antworten Top
#6
Hi Luschi,

ich hatte in meiner Version der Mappe bei allen Abfragen den Haken bei "Aktualisierung im Hintergrund zulassen" rausgenommen. Und bisher hatte ich tatsächlich noch nicht herausgefunden, wie die die " Aktualisierung im Hintergrund zulassen" aus dem Makro heraus deaktivieren kann. Das werde ich dann auch bei mir einbauen, weil es ja so viel eleganter ist.
Antworten Top
#7
Hallo Luschi

Nun hast du es gesagt...... , ich schaue mir in letzter Zeit keine einzige Datei mehr von ihm an. weil es standard ist das eine Fehlermeldung kommt.
Gruß
Ivan 16
Antworten Top
#8
Zitat:Damit aber die Laufzeiten korrekt ermittelt werden können, muss in den entsprechenden Abfragen die Option "Aktualisierung im Hintergrund zulassen" deaktiviert sein.

Wer richtig lesen kann, ist klar im Vorteil. Und die neue, bessere Variante, hat nicht einmal EarlFred gekannt.




Und früher gab es bei Nichtbeachtung auch keine Fehlermeldung.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste