Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1404to1408
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

Pivot SQL und VBA

Pivot SQL und VBA
05.02.2015 16:24:32
Christoph
Hallo zusammen,
ich habe mit MSQuery eine Verbindung zu einem Sheet in einer zweiten Exceldatei erstellt und mir die Daten als Pivottabelle zurückgeben lassen.
mit der Anweisung:
SQL_String_old = ActiveWorkbook.Connections("Meine_Verbindung").ODBCConnection.CommandText
SQL_String_New = pseudoCode:Ersetze_das_Datum_in_der_WHERE_Clause(SQL_String_old):pseudoCode
Hole ich die SQL Anweisung aus der Verbindung und ändere das Datum in der WHERE Clause.
Danach weise ich der Verbindung den neuen SQL String zu mit:
ActiveWorkbook.Connections("Meine_Verbindung").ODBCConnection.CommandText = SQL_String_New
Das funktioniert auch erwartungsgemäß.
ABER: nach der Aktualisierung habe ich eine neue Verbindung mit dem Namen "Verbindung". Die ursprüngliche Verbindung "Meine_Verbindung" existiert zwar noch, hat aber keine Verbindung mehr zu meiner Pivottabelle und auch kein Refresh Date mehr.
Ich möchte aber die alte Verbindung behalten, da ich nach dem Verbindungsnamen entscheiden möchte, welchen Datumszeitraum ich in der WHERE Clause mitgebe.
Ich würde mich freuen, wenn jemand eine Idee hat.
vielen Dank im voraus.
Christoph

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zeig mal den ganzen Code! (owT)
05.02.2015 16:39:41
EtoPHG

AW: Zeig mal den ganzen Code! (owT)
05.02.2015 16:51:44
Christoph
der ganze Code ist nicht mehr als das hier:
Nach dem Erstellen der Verbindung hab ich den Namen "Meine_Verbindung" per Hand zugewiesen.
Public Sub Change_Where
SQL_String_old = ActiveWorkbook.Connections("Meine_Verbindung").ODBCConnection.CommandText
SQL_String_new = Replace(SQL_String_old, "And `data$`.DATUM08 00:00: _
00'})", "And `data$`.DATUM07 00:00:00'})")
ActiveWorkbook.Connections("Meine_Verbindung").ODBCConnection.CommandText = SQL_String_new
End Sub

Wenn das funktioniert kan ich es auslagern in eine extra Sub, die nur die beiden Parameter des Replace
als Argumentenliste bekommt.

Anzeige
AW: Pivot SQL und VBA
05.02.2015 16:55:38
Christoph
letzter Post unvollständig:
Der Code funktioniert, legt aber eine neue Verbindung an.
Das möchte ich vermeiden...

AW: Pivot SQL und VBA
05.02.2015 17:17:58
EtoPHG
Hallo Christoph,
Das kann ich nicht nachvollziehen.
Ich kann mir auch keinen Reim daraus machen, dass du den CommandText der Connection änderst.
Eigentlich müsstest du das QueryTables("Meine_Verbindung") ansprechen und dann dieses .Refresh (en).
Gruess Hansueli

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige