Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1144to1148
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: Pivottabelle aktualisieren nach DB-Abfrage

VBA: Pivottabelle aktualisieren nach DB-Abfrage
André
Moin zusammen,
ich habe eine Datentabelle, deren Daten über eine DB-Verbindung aus einer MySQL-Tabelle kommen. In einem zweiten Arbeitsblatt habe ich eine Pivottabelle inkl. Pivotchart, in der die Daten aus der ersten Tabelle ausgewertet werden.
Wenn ich nun die Datenverbindung über VBA aktualisiere, dann wird die Pivottabelle nicht mit aktualisiert. Auch dann nicht, wenn ich es explizit mit anstoße:

ActiveWorkbook.Connections("Monatsdaten").Refresh
Sheets("Auswertung").PivotTables("PivotTable1").PivotCache.Refresh
Führe ich den Befehl zum Aktualisieren der Pivottabelle direkt danach gesondert in einem anderen Script aus, funktioniert es tadellos.
Was mach ich falsch, bzw. wie kann ich es erreichen, daß die Pivottabelle aktualisiert wird, nachdem die DB-Abfrage durchgeführt wurde?
Gruß, André

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA: Pivottabelle aktualisieren nach DB-Abfrage
18.03.2010 17:24:53
fcs
Hallo André,
das Problem ist wohl, dass das Makro die Aktualisierung der Connection-Daten startet, aber dann nicht wartet, bis die Aktualisierung abgeschlossen ist, sondern einfach weiter macht.
Ich weiss jetzt nicht genau, ob in deinem Fall ein zusätzlicher Parameter hilft. Dieser ist eigentlich für QueryTables vorgesehen.
ActiveWorkbook.Connections("Monatsdaten").Refresh BackgroundQuery:=False

Ansonsten könntest du die Aktualisierung der Pivot-Tabelle mit einer OnTime-Anweisung etwas Zeitverzögert starten.
Sub aa()
ActiveWorkbook.Connections("Monatsdaten").Refresh
'die 5 Sekunden in der Verzögerung ggf. anpassen
Application.OnTime earliesttime:=Now + TimeValue("00:00:05"), _
Procedure:="PivotAktualisieren"
End Sub
'diese Prozedur muss in einem allgemeinen Modul stehen!!
Sub PivotAktualisieren()
Sheets("Auswertung").PivotTables("PivotTable1").PivotCache.Refresh
End Sub
Gruß
Franz
Anzeige
AW: VBA: Pivottabelle aktualisieren nach DB-Abfrage
19.03.2010 08:50:58
André
Moin Franz,
das mit dem BackgroundQuery:=False führt leider zu einer Fehlermeldung. Und die Lösung mit dem X Sekunden warten kann ich leider nicht einsetzen. Die SQL-Abfrage dauert je nach eingestellten Kriterien mal 10s. Ich müßte also eine Wartezeit von min. 15s einstellen, und das auch bei den Abfragen, die in 1s erledigt sind. Die Leute, die mit den Tabellen arbeiten, würden mir selbige wohl um die Ohren hauen.
Gibt es irgendeine Möglichkeit abzufragen, ob eine bestimmte SQL-Abfrage bereits fertig ist? Dann könnte ich eine Schleife bauen, die immer wieder den Status der Abfrage ermittelt und die Pivottabelle aktualisiert, sowie die SQL-Abfrage fertig ist.
Gruß, André
Anzeige

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige