Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Pivot Abfrage ändern - Datenbank bleibt

Forumthread: Pivot Abfrage ändern - Datenbank bleibt

Pivot Abfrage ändern - Datenbank bleibt
22.01.2009 11:15:34
lutz
Hallo Excel-Profis,
ich habe diverse Berichte die auf einer Access-Datenbank basieren, und dort auf einer Tabelle.
Jetzt muß ich die Tabelle ändern (Namen), die Datenquelle selber (Access-DB) bleibt gleich.
Hat jemand für so was ein Makro?
Habe da schon lange gesucht, finde aber nichts.
Vielen Dank und Gruß Lutz
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Pivot Abfrage ändern - Datenbank bleibt
22.01.2009 12:08:00
lutz
Hallo, habe folgendes Makro gefunden:

Sub BtnTabelleWechselTableJC()
Dim wb As Workbook
Dim pvtCache As PivotCache
Dim s As String
Dim vAlt, vNeu As String
'NIT
Set wb = ActiveWorkbook
'On Error Resume Next
'hole den ersten und einzigen Cache der Seite
Set pvtCache = wb.PivotCaches(1)
'CONNECTION Auf DB_AB erzwingen
s = pvtCache.Connection
If Not InStr(1, s, "db2.mdb", vbTextCompare) > 0 Then
s = Replace(s, "db2", "db2", , vbTextCompare)
pvtCache.Connection = s
pvtCache.CommandText = Replace(pvtCache.CommandText, "db2", "db2")
End If
'SQL-TEXT
s = pvtCache.CommandText
If InStr(1, s, "NATeil2_shop", vbTextCompare) > 0 Then
s = Replace(s, "NATeil2_shop", "NATeil2", 1, , vbTextCompare)
pvtCache.CommandText = s
Else
s = Replace(s, "NATeil2", "NATeil2_shop", 1, , vbTextCompare)
pvtCache.CommandText = s
'Debug.Print s
End If
MsgBox "Fertig mit Wechsel von " & vAlt & " zu " & vNeu & vbCrLf & Err.Description
End Sub


und soweit angepasst (die Datenbank db2.mdb bleibt unverändert.
Leider steigt er in der letzten Zeile: pvtCache.CommandText = s aus.
Hat jemand eine Idee warum?

Anzeige
AW: Pivot Abfrage ändern - Datenbank bleibt
22.01.2009 12:48:54
Luschi
Hallo Lutz,
einige Teile des Vba-Codes sind unlogisch:
If Not InStr(1, s, "db2.mdb", vbTextCompare) > 0 Then müßte so lauten:
If InStr(1, s, "db2.mdb", vbTextCompare) > 0 Then
denn wenn der DB-Name db2.mdb nicht gefunden wird, kann auch nichts ausgetauscht werden.
s = Replace(s, "db2", "db2", , vbTextCompare)
Warum willst Du "db2" gegen "db2" austauschen
so sollte es richtig sein:
s = Replace(s, "db2", "db_ab", , vbTextCompare) und noch sicherer:
s = Replace(s, "db2.", "db_ab.", , vbTextCompare)
denn es soll ja die CONNECTION auf DB_AB erzwungen werden
pvtCache.CommandText = Replace(pvtCache.CommandText, "db2", "db2") genau das selbe Problem:
pvtCache.CommandText = Replace(pvtCache.CommandText, "db2.", "db_ab.")
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Pivot Abfrage ändern - Datenbank bleibt
22.01.2009 13:07:27
lutz
Hallo Luschi,
danke für die Antwort.
Der erste Teil kann natürlich auch weg weil ich ja die Datenbank gar nicht ändern will/muß.
Mir geht es ja um den hinteren Teil bei dem ich eben die Abfrage ändern muß NATeil2 gegen NATeil2_shop - und da steigt er eben aus.
Den Code hatte ich so gefunden und oben so angepasst, dass er nichts ändert - dürfte keinen Einfluß haben?!
Gruß Lutz
Anzeige
AW: Pivot Abfrage ändern - Datenbank bleibt
22.01.2009 13:24:00
Luschi
Hallo Lutz,
Du holst Dir den falschen PivotCache
statt: Set pvtCache = wb.PivotCaches(1)
so:     Set pvtCache = wb.Workscheets("meineTabelle").PivotTables("meinePVTabelle").PivotCache
Gruß von Luschi
aus klein-Paris
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige