Per Mausklicks, Makro oder VBA-Routine lassen sich in der Jet-Engine unter MS Access gespeicherte Tabellen
wie beschrieben leicht nach DB2 migrieren. Eine Datenbank besteht aber nicht nur aus einer zusammenhanglosen Ansammlung von Tabellen. Die Access-Exportfunktion transportiert eigentlich nur Struktur und Daten von A nach B, ignoriert aber Indizes, Primär- und Fremdschlüssel.
Ohne ihn jemals angewandt zu haben, bin ich mir sicher, dass MS mit seinen Upsizing-Agenten auch diese Datenbank-Objekte migriert. Leider eben nur auf den SQL-Server. Als Strafe dafür, dass ich die
schöne neue MS-Welt frevelhaft verlassen will, muss ich leider eine Extrarunde programmieren. Aber danach lassen sich auch Indizes und Schlüssel nach DB2 portieren.
Dazu muss ich nur die TableDef-Objekte ausbeuten, so wie ich es für die Export-Routine für alle Tabellen meiner Access-Anwendung getan habe - eigentlich nur eine Schleife um "
DoCmd.TransferDatabase". Mit diesem Kommando übertrage ich Struktur und Daten einer Tabelle, das ist dann aber auch schon alles. Beim Transfer von Indizes oder Integritätsbedingungen helfen wieder die TableDef-Objekte. Hier finde ich die Eigenschaften, die ich zur Erstellung geeigneter "create index" oder "alter table" benötige.
Für meine VBA-Exportroutine sieht das im Wesentlichen so aus: