Heute kam mir zum ersten Mal eine sinnvolle Anwendung für eine ODBC-Anbindung einer MySQL-Datenbank an Microsoft Excel in den Sinn. Zum Glück war meine erste Aktion nach der Idee eine Google-Suche. Dadurch habe ich einen Foreneintrag gefunden, der mir eine Menge Arbeit erspart hat.
Der Hintergrund ist, dass es eine Reihe von Problemen gibt:
- Obwohl Office 2008 Macs mit Intel-Prozessoren nativ unterstützt, ist das Hilfsprogramm Microsoft Query seit 2002 unverändert und hat nur PowerPC-Code.
- Der freie ODBC-Connector von MySQL wird nicht als „fat binary“ angeboten, sondern nur wahlweise als ppc- oder x86-Code.
- Excel 2008 hat eine hartkodierte Liste von unterstützten ODBC-Konnektoren, die nicht den MySQL-Connector enthält.
Wenn man eine schnelle und einfache Lösung für alle genannten Problem will, kann man einen der offiziell von Microsoft unterstützten Konnektoren kaufen. Getestet habe ich nur den von Actual Technologies (siehe unten).
Da es einen freien Konnektor gibt, sehe ich aber nicht ein, warum ich einen kaufen soll. Hier sind die Schritte, um den freien MySQL-Connector benutzen zu können:
- bei MySQL die Konnektoren für PowerPC und x86 separat runterladen (im „package format“)
- Achtung: in gemounteter Form heißen beide gleich, so dass man die Architektur nicht mehr erkennen kann. Deshalb sollten die Images jeweils manuell nach Bedarf gemountet werden.
- Das Image für x86 mounten (Doppelklick) und den Installer für x86 ausführen
- im Terminal wie folgt aus den Shared Libraries beider Architekturen sog. „fat binaries“ bauen:
- mkdir ODBC_ppc ODBC_x86 ODBC_fat
- cd ODBC_x86
- pax -zrf /Volumes/MySQL Connector ODBC 5.1/MySQL Connector ODBC 5.1.pkg/Contents/Archive.pax.gz
- x86-Image auswerfen, ppc-Image mounten
- cd ../ODBC_ppc
- pax -zrf /Volumes/MySQL Connector ODBC 5.1/MySQL Connector ODBC 5.1.pkg/Contents/Archive.pax.gz
- cd ..
- lipo ./ODBC_ppc/usr/local/lib/libmyodbc3S-5.1.5.so ./ODBC_x86/usr/local/lib/libmyodbc3S-5.1.5.so -output ODBC_fat/libmyodbc3S-5.1.5.so -create
- lipo ./ODBC_ppc/usr/local/lib/libmyodbc3S.so ./ODBC_x86/usr/local/lib/libmyodbc3S.so -output ODBC_fat/libmyodbc3S.so -create
- lipo ./ODBC_ppc/usr/local/lib/libmyodbc5.so ./ODBC_x86/usr/local/lib/libmyodbc5.so -output ODBC_fat/libmyodbc5.so -create
- sudo cp ODBC_fat/* /usr/local/lib/
- An dieser Stelle hat man einen „fetten“ MySQL-Connector, den man mit Dienstprogramme->ODBC-Administrator konfigurieren kann. Ich habe einen Benutzer-DSN hinzugefügt.
- Da Excel sich noch weigert, wenn man Daten->Externe Daten->Neue Abfrage erstellen auswählt, muss man die Demo-Version von Actual Technologies installieren.
- Jetzt startet Microsoft Query, wenn man es aus Excel aufruft, und man kann auch den MySQL-Connector benutzen
vielen dank für den tipp! ich habe auch lange nach einer lösung gesucht, wie man so etwas auf die reihe bekommt, aber so wie es scheint war ich nicht der einzige! hast mir ne menge zeit und arbeit erspart!!! 😉
also ich sehe da schwarz…. ich meine – wie ist es bei openoffice oder vei filemaker 11? keine der beiden kriegt eine nützliche odbc verbindung hin. FM stürzt ab nachdem er die tabellenstruktur noch knapp anzeigt und openoffice meldet eine ‚wrong architecture’…. gruss mark
Kaum zu glauben, aber wahr: bei Office 2011 ist die Situation unverändert. Microsoft Query ist immer noch nur als PowerPC-Binary verfügbar …