Zum Inhalt springen

VBA und ODBC-Verbindungen

Wer ist verwundert, dass einem nach 20 Jahren die damals programmierten Excel-Makros um die Ohren fliegen?

Manchmal fühlt es sich eher so an, als würde man neben einem explodierenden Güllefaß stehen.

Nachdem die Code-Basis des ERPs zu UTF8 umgestellt wurde, ergaben sich diverse Probleme mit der Daten-Ausgabe vom ERP, wenn die Daten anschließend weiter verarbeitet wurden.

Unter anderem weigerte sich sowohl VBS-Skripte (fragt nicht nach diesem “von-hinten-durch-die-Brust-ins-Auge-Konstrukt 😉 ), als auch die volljährigen Excel-Makros, die korrekt aus dem ERP abgefragten Daten, so weiter zu verarbeiten, wie es angebracht wäre.

Somit waren alle Umlaute irgendwelche Zeichen. Zu allem Übel war die Ersetzung von “ä”, “ö” und “ü” dann auch noch gleich. Somit konnte man den Umstand nicht schnell durch “Ersetzen” beheben.

Die Lösung kam durch einen externen Programmierer, der für oft für die Firma tätig ist.

Seine Antwort war dann nach einem Wochenende: “Heutiges Learning: VB-Skripte laufen immer in UTF-16. Warum es von ISO/LATIN/Windows-ANSI auf UTF-16 konvertiert hat und von UTF-8 zu UTF-16 nicht, weiss ich allerdings nicht.

Die Anpassung beim Aufbau der ODBC-Verbindung muss um einen kleinen Zusatz erweitert werden und die Daten bleiben im “Urzustand”.

Connection.Open "DSN=<Name des ODBC-Verbindung>;CharacterSet=unicode_fss"