Anzeige
Archiv - Navigation
1040to1044
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 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

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
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
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige