Access DB in SQL umwandeln

Hallo Access Profis,

ich habe eine Access Datenbank, die mit Unmengen Umlauten in Tabellennamen und Spaltennamen generiert wurde.
Jetzt möchte ich die Datenbank komplett auf einem SQL Server abbilden.
Gibt es eine Möglichkeit aus allen Tabellen und Abfragen usw. die Umlaute umzuwandeln in z.B. ae statt ä und Spaces zu entfernen?

Für Ideen schon mal danke im Voraus,

Robert

Hi,

na ja die Moeglichkeit gibt es schon aber…

Man Kann ueber die TableDefs und Querydefs iterrieren und die Namen aendern

For Each tblDef In dataDB.TableDefs
tblDef.Name = myFunction(tblDef.Name)
next tblDef

Die Funktion myFunction aendert die Umlaute in ae,ue etc.

Analog dazu das gleiche mit dataDB.QueryDefs

Wo es problematischer wird sind die Abfragen, da hier u.U. die Tabellennamen mit den Umlauten in der „SQL“ Property gespeichert sind.
Hier wird es dann problematisch wenn auch in den Feldnamen Umlaute auftauchen.

Hope this helps

Peter

Wo es problematischer wird sind die Abfragen, da hier u.U. die
Tabellennamen mit den Umlauten in der „SQL“ Property
gespeichert sind.
Hier wird es dann problematisch wenn auch in den Feldnamen
Umlaute auftauchen.

Das ist schon mal ein guter Plan.

Genau das ist aber der Fall, wie würdest Du in dem Falle vorgehen, wenn eben genau auch die Feldnamen z.T. mit Umlauten bestehen ?

Danke,

Robert

Hallo, Robert!

Genau das ist aber der Fall, wie würdest Du in dem Falle
vorgehen, wenn eben genau auch die Feldnamen z.T. mit Umlauten
bestehen ?

Für die Felder analog: Die Tabledef-Objekte iterieren, in diesen dann auch noch die Felder (for each feld in tabledef.fields…, geschachteltes For-Next) entsprechend anpassen. Dabei dann auch die Indizes nicht vergessen. (tabledef.indexes, hier nicht nur auf .name, sondern auch auf .foreignname achten.)

Ggf. am besten alle „Übersetzungen“ (könnte auch die Länge der Bezeichner relevant werden? Ich kenn mich da bei den Einschränkungen nicht so aus; bei Oracle musste ich seinerzeit mal die Tabellennamen auch noch kürzen) mitprotokollieren. Anschließend dann über alle Abfragen laufen und hier ebenfalls die SQL-Eigenschaft „übersetzen“.

Was dann noch fehlen könnte, ist die Überprüfung Deines Programmcodes. Dort wirst Du sicherlich auch noch fleißig schauen müssen. Alles in allem wird das eine ziemliche Sch…arbeit, vermute ich.

Gruß, Manfred

Eigentlich sollten die Umlaute auch in SQL Server keine Probleme machen.

Ansonsten: Schau dir mal im DBWiki das Beispiel „MDBtoDDL“ an - daraus resultiert ein SQL-Skript, das du mit einem beliebigen Texteditor bearbeiten kannst (und darin z.B. die Umlaute ersetzen kannst). Müsste allerdings für SQL-Server-SQL etwas angepasst werden.

Gruß aus dem Norden
Reinhard Kraasch

(http://www.dbwiki.de - das Datenbank-Wiki)

Wie gesagt: Eigentlich gibt es gar keinen Grund, die Umlaute zu wandeln…

Gruß aus dem Norden
Reinhard Kraasch

(http://www.dbwiki.de - das Datenbank-Wiki)