Discussion:
ODBC-Treiber wechseln
(zu alt für eine Antwort)
Herbert Fidesser
2007-06-06 13:01:47 UTC
Permalink
Hi NG,

ein VBA-Projekt (DAO, da schon älter) fragt via ODBC verknüpfte
Tabellen ab und speichert Auszüge in eine Tabelle der Access-
Datenbank.
Das Projekt soll nun erweitert werden: Mit VBA sollen viele ODBC-
Verbindungen der Reihe nach aufgerufen und abgearbeitet werden.
Mein Ansatz wäre, alle installierten ODBC-Verbindungen in einer
Schleife aufzurufen und nach den relevanten Tabellen zu durchsuchen,
die Verbindung wieder zu kappen und die nächste aufzurufen.
Hat jemand eine Idee, wie ich das angehen könnte?

Danke für Tipps
Gruß
Herbert
Josef Poetzl
2007-06-06 13:15:38 UTC
Permalink
Hallo!
Post by Herbert Fidesser
ein VBA-Projekt (DAO, da schon älter) fragt via ODBC verknüpfte
Tabellen ab und speichert Auszüge in eine Tabelle der Access-
Datenbank.
Das Projekt soll nun erweitert werden: Mit VBA sollen viele ODBC-
Verbindungen der Reihe nach aufgerufen und abgearbeitet werden.
Mein Ansatz wäre, alle installierten ODBC-Verbindungen in einer
Schleife aufzurufen und nach den relevanten Tabellen zu durchsuchen,
die Verbindung wieder zu kappen und die nächste aufzurufen.
Hat jemand eine Idee, wie ich das angehen könnte?
Ich verstehe den Hintergrund dieses Vorhabens noch nicht.
Wenn die Tabellen bereits eingebunden sind, warum willst du dann die
unterschiedlichen Datenquellen getrennt durchlaufen?

Aber vielleicht helfen dir die Eigenschaften der verknüpften Tabelle
weiter. Dort kannst du den Connectionstring abfragen:
CurrentDb.TableDefs("VerknüpfteTabelle").Connect

vielleicht benötigst du auch:
CurrentDb.TableDefs("VerknüpfteTabelle").SourceTableName


mfg
Josef
Herbert Fidesser
2007-06-06 13:37:43 UTC
Permalink
Post by Josef Poetzl
Ich verstehe den Hintergrund dieses Vorhabens noch nicht.
Wenn die Tabellen bereits eingebunden sind, warum willst du dann die
unterschiedlichen Datenquellen getrennt durchlaufen?
Danke für deine schnelle antwort, Josef.
Leider ist mein Problem so nicht zu lösen.
Es handelt sich um viele strukturgleiche Datenbanken, die wöchentlich
ausgelesen werden müssen. Ich kann unmöglich eine Tabelle
"Rechnungspositionen" 100x einbinden. Ich muss...
die 1. Datenquelle verknüpfen und abarbeiten
die Quelle wieder entfernen
die 2. Quelle verknüpfen usw.

Für jede Datenquelle ist aber eine ODBC-Datenquelle installiert, die
ich gerne ansprechen würde.
Hoffentlich ist mein Problem jetzt klar beschrieben.
Fällt dir dazu 'was ein.

Gruß aus Wien
Herbert
Josef Poetzl
2007-06-06 14:14:05 UTC
Permalink
Hallo!
Post by Herbert Fidesser
Danke für deine schnelle antwort, Josef.
Leider ist mein Problem so nicht zu lösen.
Es handelt sich um viele strukturgleiche Datenbanken, die wöchentlich
ausgelesen werden müssen. Ich kann unmöglich eine Tabelle
"Rechnungspositionen" 100x einbinden. Ich muss...
die 1. Datenquelle verknüpfen und abarbeiten
die Quelle wieder entfernen
die 2. Quelle verknüpfen usw.
Für jede Datenquelle ist aber eine ODBC-Datenquelle installiert, die
ich gerne ansprechen würde.
Hoffentlich ist mein Problem jetzt klar beschrieben.
Fällt dir dazu 'was ein.
Jetzt schon. ;)

Ich nutze etwas ähnliches zum Neuverknüpfen.
Dabei durchlaufe ich alle Tabellen, seh nach, ob in der
Connect-Eigenschaft "ODBC" steht und stelle dann den Connectionstring
neu ein. (Ich verwende hauptsächlich DSN less Connectionstring.)

Die einzelnen Server inkl. Tabellennamen könntest du aus einer Tabelle
auslesen. Damit wäre die Anwendung unabhängig von der Anzahl der zu
verbindenden Datenbanken.

Beispiele, wie ich auf unterschiedliche DBMS zugreife bzw. einbinde,
findest du in meiner DBMS-Test-mdb
( http://access.joposol.com/download/DBMStest.zip )

mfg
Josef

Loading...