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

Nachträgliches Ändern der Datenbankquelle

Forumthread: Nachträgliches Ändern der Datenbankquelle

Nachträgliches Ändern der Datenbankquelle
Hockmock
Hi to all,
ich habe eine Datei mit zahlreichen Query-Abfragen, was bislang auch ohne Schwierigkeiten lief. Jedoch habe ich jetzt das Problem, dass sich die zugrunde liegenden Datenbankquellen geändert haben. Diese müssten aktualisiert/geändert werden - nur wie und wo? Wenn ich in den Query-Editor gehe, kann ich meinen SQL-Code anpassen, Tabellen, Kriterien, etc ändern. Aber wo zum "Kuckuck" kann man die DBQ anpassen.
Mittels unten stehenden Code haben ich mir mal alle notwendigen daten ausgegeben - z.B. q.connection:
(ODBC;DBQ=Y:\xyz\123.xls;DefaultDir=Y:\...\123;Driver={Driver do Microsoft Excel*.xls)};DriverId=790;FIL=excel 8.0;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;ReadOnly=1;SafeTransactions=0;Threads=3;UserCommitSync=Yes;)
...hier müsste jetzt anstelle z:b. "DBQ=Y:\xyz\123.xls" ---- "DBQ=Y:\abc\123.xls" stehen.
Hat jemand eine Idee?
Danke im voraus,
Hockmock
Sub Ausgabe_Abfragewerte()
' Alle Tabellenblätter mit hinterlegten Abfragen werden in Liste ausgegeben
On Error Resume Next
Dim q As QueryTable
x = 1
z = 1
For i = 1 To Worksheets.Count
If Sheets(i).QueryTables.Count > 0 Then
ActiveSheet.Cells(z, x) = Sheets(i).Name
For Each q In Sheets(i).QueryTables
ActiveSheet.Cells(z, x + 1) = q.Name
ActiveSheet.Cells(z, x + 2) = q.Connection
ActiveSheet.Cells(z, x + 3) = q.Sql
z = z + 1
Next q
'    x = x + 1
End If
Next i
'x = x + 1
End Sub

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Nachträgliches Ändern der Datenbankquelle
06.05.2010 16:12:13
IngGi
Hallo Hockmock,
nimm doch dein Makro dafür. Statt Infos auszugeben, solltest du damit auch gleich den Connectionstring mit Replace ändern können. Ist allerdings ungetestet.
Sub Ausgabe_Abfragewerte()
On Error Resume Next
Dim q As QueryTable
For i = 1 To Worksheets.Count
If Sheets(i).QueryTables.Count > 0 Then
For Each q In Sheets(i).QueryTables
q.Connection = Replace(q.Connection, "Y:\xyz\123.xls", "Y:\abc\123.xls")
Next q
End If
Next i
End Sub
Gruß Ingolf
Anzeige
;

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