Salu zusammen Ich habe hier ein Problem an welchem ich mir langsam aber sicher die Zähne ausbeisse. Vielleicht kann mir ja jemand von Euch einen entscheidenden Tipp geben. Es handelt sich um eine mySQL Datanbank welche mittels Excel (ODBC) Verbindung abgefragt werden soll. Die Verbindung steht, ich kann auch Datensätze abrufen ect. Die Grundfunktionalität ist gegeben. Stellt euch ein Textfeld vor in welches Ihr einen Namen reinschreibt. BSP: Ihr fangt an mit "G" -> Abfrage, also SELECT wird entsprechend angepasst und es kommen nur noch die Namen welche mit G beginnen. ("G%") Ihr tippt ein weiteres Zeichen z.B. "R" -> Abfrage, also SELECT wird entsprechend angepasst "GR%" So weit so gut, nun tippt ihr einen Umlaut ein, z.B. "Ü" -> Abfrage, also SELECT wird entsprechend angepasst "GRÜ%" Nun wird der Datensatz angezeigt welcher mit GRÜ beginnt, stimmt ja auch noch. Wenn jedoch nun ein weiterer Buchstabe hinzukommt, z.B. ein "N", dann ist ende Feuer. Es stürzt nichts ab, gibt keine Fehlermeldung ect. aber er bleibt auf dem ersten Datensatz den er findet stehen, also wenn es z.B. einen DAtensatz gibt der mit GRÜA beginnt, kommt immer der, auch wenn mein SELECT nach z.B. GRÜZZE suchen würde. Hoffe ich konnte das verständlich ausdrücken. Das Problem ist also, dass ich zwar in VBA sehe das der String richtig aufgebaut wird, aber wohl bei der Umsetzung irgendetwas mit den Umlauten passiert. ZWEITENS: Wenn ich z.B. in meinem VBA schreibe a = Asc("Ä") dann hat a nachher den Wert 219! Das stimmt ja in keinster Weise. Ä wäre ja laut ASCII Tabelle 128. Bei Buchstaben welche einen ASCII Wert kleiner 128 aufweisen funzt die Funktion, bei allen darüber nicht. Da ich in der CH wohne ist als Tastatursprache Deutsch (Schweiz) eingestellt. Langsam weiss ich echt nicht mehr weiter. Wie kann ich eine Abfrage generieren welche mit Umlauten korrekt umgeht? Das Problem ist nicht neu, auch wenn man im Netz schaut, aber eine Lösung welche funktioniert konnte ich bis jetzt nicht finden. Wäre toll, falls jemand schonmal so ein Prob hatte, wenn er sich kurz melden könnte Es Grüessli RS
hast du mal in den ODBC einstellungen geschaut was dort für ein Zeichensatz ausgeählt ist?
Nachtrag: was passiert wenn du direkt mit dem mysql (also ohne Excel) diese abfrage machst?
RS schrieb: > laut ASCII Tabelle 128 Heutzutage nutzt man idr aber kein ASCII mit Codetabelle sondern UTF-8. Du solltest also klären: - Welches Encoding du in VB hast - Welches für VB <-> ODBC genutzt wird - Welches für ODBC <-> MySQL genutzt wird - Welches deine MySQL Tabelle nutzt Du kannst auch mal einen Datensatz mit Sonderzeichen in eine Testtabelle einfügen und dir dann mit einem anderem Tool in der DB direkt ansehen ob das überhaupt klappt. Eventuell kann auch eine Google Suche hilfreich sein: http://forums.mysql.com/read.php?70,165129,165129
Entschuldigung, das hätte ich vielleicht noch anmerken sollen: Ich kenne die DB nicht. Ich habe die Zugangsdaten (zur DB), aber ich kann mich nicht auf dem Server einloggen (keine Berechtigung) Ebenso habe ich keine Möglichkeit einen Datensatz zu generieren und in die DB einzufügen. Habe natürlich nur ReadOnly Rechte grrrrrr Immer dieser Sicherheitsfanatismus... Auf die Idee einen Datensatz zu erstellen bin ich eben auch gekommen, aber leider funktioniert das wegen obenstehender Problematik nicht :o( Werde mir das aber mit UTF8 ect. mal genauer anschauen. Auch die ODBC Einstellungen werde ich mir mal genauer zu Gemüte führen. Merci bereits für die Antworten Grüessli RS
Läubi .. schrieb: > Heutzutage nutzt man idr aber kein ASCII mit Codetabelle sondern UTF-8. was aber meist neue Problem erzeugt. Weil es dann viele verschienden "Ü"s geben kann. Diese sehen alle gleich aus sind aber einen anderen UTF8 code. Dann wird es zwar immer richtig dargestellt aber suchen kann man immer noch nicht.
RS schrieb: > Ich kenne die DB nicht. Ich habe die Zugangsdaten (zur DB), aber ich > kann mich nicht auf dem Server einloggen (keine Berechtigung) wenn du mit excel drauf kommt, dann kommst du auch mit dem mysql client draur.
Hm, komisch Wenn ich unter Systemsteuerung - Verwaltung - ODBC Datenquellen... gehe und dort den Treiber in den Benutzerdatenquellen selektiere und auf Konfigurieren gehe kommen zwei Fehlermeldungen: 1. "Die Setup-Routinen für den MySQL ODBC 5.1 Driver ODBC-Treiber konnten nicht gefunden werden. Installieren sie den Treiber erneut" 2. Fehler gefunden: Der angegebene DSN weist eine nicht übereinstimmende Architektur von Treiber und Anwendung auf. Und was sagt mir das genau? Sorry, habe nicht so Ahnung von Datenbanken, ist ziemliches Neuland für mich Grüessli RS
RS schrieb: > Und was sagt mir das genau? das die ODBC-Treiber installation versaut ist. Also Treiber neu installierne. (im schlimmsten fall ist es ein 32/64 bit Problem. Dann den Treibermanager gibt es als 32 und als 64bit version. Ein 32bit programm sieht also andere Datenquellen als ein 64bit Programm)
RS schrieb: > Wenn ich z.B. in meinem VBA schreibe a = Asc("Ä") dann hat a nachher den > Wert 219! Das stimmt ja in keinster Weise. Ä wäre ja laut ASCII Tabelle > 128. Nein. In ASCII gibt es keine Umlaute. Das ist ein reiner 7-Bit-Zeichensatz, jenseits von 127 gibt es da keine Zeichen. Was für eine "ASCII-Tabelle" meinst Du? Unter DOS wird Codepage 437 bzw. 850 verwendet, da ist Ä 142 (0x8e). Windows-Programme verwenden üblicherweise Codepage 1252 ("ANSI", bzw. ISO8859-1), da ist Ä 196 (0xc4).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.