Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Access Abfrage mit chinesischen Zeichen

Begonnen von Markus Beck, Oktober 18, 2022, 03:17:31

⏪ vorheriges - nächstes ⏩

Markus Beck

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



 

Markus Beck

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...

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Markus Beck

#3
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!


ebs17

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.
Mit freundlichem Glück Auf!

Eberhard

markusxy

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.

Markus Beck

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.

@ebs17
Dein 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.

markusxy

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.