問題は、その Unicode テキストを表示している場所が原因である可能性があります。
同じ文字をテーブルのテキスト フィールドに貼り付けました。イミディエイト ウィンドウでそれらを取得するとDLookup
、イミディエイト ウィンドウには希望どおりに Unicode が表示されないため、疑問符が表示されます。
? DLookup("some_text", "tblFoo", "id = 1")
??????
AMsgBox
もそれらを疑問符として表示します。
MsgBox DLookup("some_text", "tblFoo", "id = 1")
ただし、フォーム テキスト ボックス コントロールには、Unicode を適切に処理する機能があります。これらの文字を含むフィールドにテキストボックスをバインドすると、これが得られます...
クエリは Unicode 文字を参照することもできます。これはWHERE
句で Unicode 文字を使用し、クエリをデータシート ビューで開いたときにすべて正しく表示します。
SELECT f.id, f.some_text
FROM tblFoo AS f
WHERE (((f.some_text) Like '佛*'));
これはすべて、これらのユニコード文字を使用しようとしている方法と、それらを表示している場所に帰着すると思われます。
コメントで、これらの Unicode 文字をテキスト ファイルに書き込むと疑問符しか生成されないと述べました。ただし、Unicode をテキスト ファイルに書き込んで (以下の手順に従って)、Unicode を正しく処理できるエディターでファイルを表示すると、それらが格納されているテーブルのデータシート ビューに表示されるのと同じ文字が表示されます。 . このスクリーンショットは、以下のコードから作成されたファイルで開かれたワードパッドを示しています。
Dim objFso As Scripting.FileSystemObject
Dim objFile As Scripting.TextStream
Set objFso = New Scripting.FileSystemObject
Set objFile = objFso.OpenTextFile(CurrentProject.Path & _
Chr(92) & "unicode.txt", ForWriting, True, TristateTrue)
objFile.Write DLookup("some_text", "tblFoo", "id = 1")
objFile.Close
Set objFile = Nothing
Set objFso = Nothing