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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige