Hallo Tom
Es existiert eine Access 2.0 DB und eine Access 2000 mit
jeweils etwa 200 Tabellen.
Weiter unten schreibst du von 120 Tabellen… ist aber wurscht, oder?
Ziel ist es, Datensätze der 2.0-DB in die 2000-DB zu
exportieren.
Das ganze soll automatisiert ablaufen
Was stellst du dir unter „automatisiert“ vor? Dass du irgendwo einen Button drückst, und irgendeine geheimnisvolle Funktion weiss, welche alten und neuen Tabellen und Attribute korrespondieren? Irgendwie musst du das selber definieren und dann kann eine von dir selbstentwickelte Funktion diese Definitionen auswerten und die Daten ex/importieren. Sicher gibt es auch irgendwo für Geld so etwas zu kaufen, aber das ist wohl nicht das, was du willst.
und ich möchte von
vornherein festlegen, welche Datensätze der 2.0-DB in welche
Tabellen der 2000-DB exportiert werden sollen.
Also du willst auch nicht alle Daten exportieren, sondern in jeder Tabelle jeden Datensatz als „zu exportieren“ oder „nicht zu exportieren“ auswählen? Hier würde es sich doch anbieten, die Datensätze, die du nicht exportieren möchtest, vorher aus der 2.0-DB zu löschen.
Problem hierbei ist, dass sich die Tabellenbezeichnungen und
die Feldnamen beider Datenbanken unterscheiden.
Beispiel:
Access 2.0-DB:
Tabelle: Adressen
Feldbezeichnungen: Name, Vorname, Strasse
Datensatzanzahl: 500
Access 2000-DB
Tabelle: Mitarbeiter
Feldbezeichnungen: Name1, Vorname1, Strasse_Privat
Ist klar, siehe oben („Definitionen“)… du musst das irgendwie festlegen. Ich kann mir kein Programm vorstellen, das dir diese Arbeit abnimmt.
Gibt es denn für jede Tabelle aus 2.0 genau eine Tabelle aus 2000, oder musst du sogar die Daten aus einer Tabelle auf mehrere andere verteilen? Oder umgekehrt, mehrere 2.0-Tabellen müssen in eine 2000-Tabelle exportiert werden, Oder beides zusammen? Das würde die ganze Sache natürlich noch komplizierter machen.
Wie exportiere ich nun die Datensätze der Access 2.0-DB in die
Access 2000-DB? Wie gesagt, dass ganze soll automatisiert
ablaufen, da es sich um etwa 120 Tabellen handelt.
Um einen Lösungs-ANSATZ wäre ich sehr dankbar, da ich momentan
echt auf dem Schlauch stehe. Liegt die Lösung in ODBC???
ODBC kann dir die angesprochenen Definitionen auch nicht abnehmen. Das kennt die Zusammenhänge in deinen Datenbanken ja auch nicht.
2 Vorschläge kann ich dir machen.
- Hau-Ruck-Methode:
- Du löschst die nicht zu exportierenden Datensätze aus der 2.0-DB.
- Du bindest (oder kopierst) die 2.0-Tabellen in die 2000-DB ein.
- Du erstellst für jede zu exportierende Tabelle eine „Anfügeabfrage“,
z.B.:
INSERT INTO Tab2000 (FeldA, FeldB, FeldC)
SELECT FeldX, FeldY, FeldZ FROM Tab20;
- Aufwändige Methode
- Du löschst die nicht zu exportierenden Datensätze aus der 2.0-DB.
- Du bindest (oder kopierst) die 2.0-Tabellen in die 2000-DB ein.
- Du erstellst eine erste Tabelle mit den beiden Attributen TAB2000
und ATTR2000 und eine zweite Tabelle mit den beiden Attributen
TAB20 und ATTR20. Diese Tabellen füllst du mit den
Tabellendefinitionen der beteiligten Tabellen. Dies kannst du von
Hand machen (dauert aber alleine wahrscheinlich schon länger als
die Hau-Ruck-Methode), oder du schreibst dir eine Funktion, die die
Tabellendefinitionen ausliest und in die beiden neuen Tabellen
abspeichert.
- Du erstellst eine dritte Tabelle mit den Attributen TAB2000,
ATTR2000, TAB20 und ATTR20, in der du die nun schon mehrfach
erwähnten Definitionen hinterlegst, welches Attribut in welches zu
exportieren ist. Dabei verwendest du die beiden ersten Tabellen als
Referenz. Auch das könntest du dir mit einer Funktion erleichtern,
die dir z.B. schon mal alle Attribute abfüllt, die den gleichen
Namen haben.
- Du schreibst dir eine Funktion, die die dritte Tabelle auswertet,
daraus entsprechende SQL-Statements generiert, diese ausführt und
dadurch den „Export“ erledigt.
Gruss
Peter