- ベストアンサー
Windows8、Access2013でのクエリで環境依存文字が正しく表示されない問題の解決方法
- Windows8、Access2013で環境依存文字を検索する時、正しく表示されません。クエリで環境依存文字を含むデータを検索すると、正しく表示されない場合があります。
- この問題はAccessの誤動作かもしれませんが、アップデートや特殊な方法を試すことで解決する可能性もあります。Microsoftの修正を待つ必要があるかもしれません。
- 正しく環境依存文字を含むデータを表示する方法があるかどうか、Access VBAなどの特殊な方法を使うことで解決できる可能性があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
2013環境はないので2010で確認しましたが、質問者さんと同じ結果でした。 クエリでの比較は、テキストモードでの比較なのでそれのバグが原因だと思われます。 (テキストモードとは、大文字/小文字、半角/全角、ひらがな/カタカナ を区別しないというモード。) 吉 だけなら No.1の回答者さんの方法でいいと思いますが、他にも環境依存文字の存在する可能性があるなら、StrComp関数でバイナリモードで比較するといいかもしれません。その代わり、大文字/小文字、半角/全角、ひらがな/カタカナ を区別するという比較になりますが。 フィールド StrComp([フィールド名],[氏名を入力してください。],0) 抽出条件 0 これで2010環境では、パラメータに 土口 の吉田さんを入力すると1件のみの表示になりました。
その他の回答 (1)
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
Accessから遠ざかって13年。もはや、簡単な関数さえうろ覚え。ですから、私の回答は、多分、参考にならないでしょう。 Q、1件目の「吉岡 雄一」を抽出する方法。 A、AscW関数を使う。 SELECT * FROM テーブル名 WHERE (((AscW(Left([名前],1)))=-10174) AND ((名前)="吉岡 雄一")); 吉は、土口です。 PS、解明は不十分。 >環境依存文字を検索条件に含めた場合、 >環境依存文字含む文字列とそれを抜いた文字列に一致する複数のレコードを戻す。 >ならば、環境依存文字含むで積を取れば良い。 このように考えてAscW関数を使いましたが、あくまでも素人の予想。プロの回答をお待ち下さい。
お礼
すみません、ここの質問は初めてだったので、使い方が分からず、補足になってしまいましたが、 本来、お礼という形でコメントすべきでした。 失礼しました。
補足
ありがとうございます。 そういう方法もある事が解りました。 ただ、今回は3件のテストデータだから教えていただいた方法で可能ですが、 本来、名前検索を行おうとしてるので、どんな名前が来るか、どんな名前で検索されるかわからないので、 そのたびに環境依存文字かどうかを1文字ずつチェックすることは、残念ながら運用上無理かと思います。 ただ、何かの時にはこういう方法もあるんだと覚えておきます。 ありがとうございました。
お礼
お返事遅くなりました。 貴殿の教えていただいた通り、「strcomp」を使えばばっちりでした。 なるほど、こういう方法も可能なのですね。 (SQL文に使える関数をもっと勉強しなければいけませんね。>自分) ありがとうございました。 解決したので締め切らせていただきます。