Guten Morgen allerseits
Habe heute mal wieder in Problem mit den chinesischen Schriftzeichen.
Eigentlich möchte ich "nur" eine Tabelle filtern in der chinesische Schriftzeichen eingetragen sind.
Ausgangslage:
- Tabelle in SQL Server
- Feld-Typ nvarchar(255)
- Verknüpfung zu Access via ODBC
- ACCESS 365
- Sprachpaket Chinesisch installiert
- Tabelle / Liste wird richtig angezeigt
Problem:
- Beim Versuch, die Liste zu filtern (Maus-Rechts-Click, Equals"内径千分尺") (Bild 1) ist das Resultat eine leere Liste
Natütlich ist der gesuchte Wert in der Tabelle vorhanden.
- Auch der Weg über eine Abfrage (Bild 2) führt in welcher Konstellation auch immer zu einer leeren Liste
Versuch:
- Führe ich die Abfrage hingegen direkt im SQL Server aus, so erhalte ich das gewünschte Ergebnis (Bild 3)
- Auch via die Funktion "Suchen" in Access werden die Einträge gefunden (Bild 4)
Was habe ich übersehen?
Bereits jetzt vielen Dank für Eure Inputs.
Grüsse aus China
Markus
Das Thema lässt mir keine Ruhe...
Folgende Ergänzung.
Ich habe versuchshalber eine einfache Tabelle in Access angelegt und eine Spalte mit chinesischen Schriftzeichen abgefüllt.
Hier funktioniert alles wie gewünscht.
Danach habe ich die Tabelle zum SQL Server exportiert. --> als Feld-Typ wird automatisch nvarchar(255) erzeugt
Nun zurück zu Access und die Tabelle aus SQL verknüpft und darauf eine Abfrage erstellt.
Resultat: Wiedeum eine leere Liste
Das Problem liegt also vermutlich in der Verbindung SQL-Server zu Access...
Hallo Markus,
Auch wenn ich mich mit SQL-Servern nicht auskenne, ist aber beim
Mitlesen hier hängengeblieben, dass man wohl besser eine View auf
dem Server anlegt und diese in Access verknüpft.
Die Profis werden das sicher vertiefen können.
gruss ekkehard
Hallo Ekkehard
Vielen Dank für Deine Anregung.
Habe das soeben gleich mal ausprobiert.
Wenn ich lediglich einen View, ohne Filterkriterien mache, verhällt es sich wie bei der verlinkten Tabelle. --> leere Liste
Wenn ich den View mit Filterkriterien ausstatte funktioniert es.
Das Problem ist, dass die Filterkriterien variabel sein sollen. Sprich, in einem Formular eingegeben werden sollen.
In diesem Fall müsste ich ja in der Lage sein, mittels VBA die Kriterien im View auf dem SQL Server zu steuern.
Geht das überhaupt? Im Netz habe ich nicht wirklich etwas dazu gefunden (oder wieder mal die falschen Begriffe verwendet für die Suche) :-)
Einen schönen Tag wünsche ich!
Du könntest Dich mit Pass-Through-Abfragen beschäftigen. Mit denen sendest Du ein Statement in TSQL direkt an den Server. Dieses Statement kannst Du dann vor Absenden per VBA anpassen.
Vielleicht erstmal klären, welche SQL Server Version und welcher Treiber für die Verbindung verwendet wird.
Wenn die aktuell und sind passthrough/ADODB Verbindung versuchen.
Wenn die klappen mal mit dem SQL Server Profiler ansehen, wie die Anweisung der Datenbank umgesetzt wird.
Hallo Zusammen
Vielen Dank für Eure Ratschläge, die ich sehr gerne annehme.
@markusxy ich lade im Anhang gerne hoch, was ich dazu gefunden habe. Bin aber noch nicht so tief in der Materie, dass ich hier wüsste wo anzusetzen ist.
@ebs17Dein Ansatz klingt interessant. Ich habe bereits angefangen mich in diese Thematik zu vertiefen. Eine komplett neue Welt für mich.
@alle die es interessiert
In der Zwischenzeit habe ich mir damit beholfen die 3 kleinen Tabellen in einer ACCESS-Back-End Datei unterzubringen.
Für den Moment können meine Leute damit arbeiten und es sind auch nicht sicherheitsrelevante Informationen sondern nur Übersetzungshilfen.
However, das ist sicher nicht das Endziel und ich hoffe mit dem noch zu erarbeitenden Know-How über Pass-Through-Abfragen diese Lücke auch noch schliessen zu können.
Die Treiber scheinen ziemlich aktuell.
Das SSMS verbindet sich meines Wissens via ado.net mit dem Server.
Es muss auch meiner Sicht mit dem Treiber oder seinen Einstellungen zu tun haben.
PassThrough solltest du auf jeden Fall anwenden können - ist also eine gute Übung.
Gib uns Bescheid was raus kommt.