Windows8、Access2013で環境依存文字を検索する時、正しく表示されません。
どのようにしたら解決できるでしょうか?
例えば、新規にテーブルを作り、次の3件を登録します。
「吉岡 雄一」、「吉岡 雄一」、「岡 雄一」
この時、1件目の「吉」は「土」+「口」の環境依存文字です。
そして、クエリで、1件目の「吉岡 雄一」を検索しようとしますと、1件目と3件目の「岡 雄一」が表示されます。
ちなみにこの時のクエリをSQLビューで確認すると次のようになっています。
SELECT テーブル1.名前
FROM テーブル1
WHERE (((テーブル1.名前)='吉岡 雄一'));
この「吉」はもちろん、「土」+「口」の環境依存文字です。
Accessの誤動作なのか、それとも何かアップデートをすれば解決する問題なのか、
あるいは、特殊な方法(Access VBAなど)があるのか、
はたまた、Microsoftの修正を待たないと解決しない問題なのかが分かりません。
正しく、1件目の「吉岡 雄一」だけを表示する方法がありましたらお教えください。
No.2ベストアンサー
- 回答日時:
2013環境はないので2010で確認しましたが、質問者さんと同じ結果でした。
クエリでの比較は、テキストモードでの比較なのでそれのバグが原因だと思われます。
(テキストモードとは、大文字/小文字、半角/全角、ひらがな/カタカナ を区別しないというモード。)
吉 だけなら No.1の回答者さんの方法でいいと思いますが、他にも環境依存文字の存在する可能性があるなら、StrComp関数でバイナリモードで比較するといいかもしれません。その代わり、大文字/小文字、半角/全角、ひらがな/カタカナ を区別するという比較になりますが。
フィールド StrComp([フィールド名],[氏名を入力してください。],0)
抽出条件 0
これで2010環境では、パラメータに 土口 の吉田さんを入力すると1件のみの表示になりました。
お返事遅くなりました。
貴殿の教えていただいた通り、「strcomp」を使えばばっちりでした。
なるほど、こういう方法も可能なのですね。
(SQL文に使える関数をもっと勉強しなければいけませんね。>自分)
ありがとうございました。
解決したので締め切らせていただきます。
No.1
- 回答日時:
Accessから遠ざかって13年。
もはや、簡単な関数さえうろ覚え。ですから、私の回答は、多分、参考にならないでしょう。Q、1件目の「吉岡 雄一」を抽出する方法。
A、AscW関数を使う。
SELECT *
FROM テーブル名
WHERE (((AscW(Left([名前],1)))=-10174) AND ((名前)="吉岡 雄一"));
吉は、土口です。
PS、解明は不十分。
>環境依存文字を検索条件に含めた場合、
>環境依存文字含む文字列とそれを抜いた文字列に一致する複数のレコードを戻す。
>ならば、環境依存文字含むで積を取れば良い。
このように考えてAscW関数を使いましたが、あくまでも素人の予想。プロの回答をお待ち下さい。
この回答への補足
ありがとうございます。
そういう方法もある事が解りました。
ただ、今回は3件のテストデータだから教えていただいた方法で可能ですが、
本来、名前検索を行おうとしてるので、どんな名前が来るか、どんな名前で検索されるかわからないので、
そのたびに環境依存文字かどうかを1文字ずつチェックすることは、残念ながら運用上無理かと思います。
ただ、何かの時にはこういう方法もあるんだと覚えておきます。
ありがとうございました。
すみません、ここの質問は初めてだったので、使い方が分からず、補足になってしまいましたが、
本来、お礼という形でコメントすべきでした。
失礼しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Access VBAから使用したExcelプロセスを閉じる方法について 4 2022/06/08 17:50
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- 歴史学 古事記は偽書? 6 2022/07/03 17:18
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- 日本語 <代名詞><指示詞>という誤り 4 2022/04/01 11:06
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Access(アクセス) Accessのリンクテーブルのパスを相対パスにする方法について教えて頂きたいです 1 2023/02/08 13:29
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
3つの表を1つに縦に連結する
-
ODBCで接続するとDBに変更/追加...
-
Accessでテーブル名やクエリ名...
-
Accessクエリでの、LIKE条件
-
Accessレコードの追加や変更が...
-
accessで指定期間の曜日カウン...
-
Accessの追加クエリで既存のテ...
-
Accessでvlookupみたいなことは...
-
デザインビューで、連結式 を...
-
access97のリンクテーブルに...
-
ツリー構造をRDBで表現するには?
-
Accessでテーブルをデータシー...
-
【Access】2つのテーブル 複数...
-
アクセスで消し込みがしたい
-
ACCESSで和暦を西暦に・・・
-
SELECT文でLEFT関数を使うと未...
-
Accessの帳票フォームで重複デ...
-
VBAで複数の数式セルを最終行ま...
-
エクセルVBAで5行目からオート...
-
Accessでテーブルの値をテキス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
ACCESSに同時アクセス(編集)を...
-
Accessクエリでの、LIKE条件
-
Accessでテーブルからテーブル...
-
access テーブル内のレコード...
-
デザインビューで、連結式 を...
-
2つのテーブルを比較して一致し...
-
3つの表を1つに縦に連結する
-
ACCESSで指定されたテーブルか...
-
Accessレコードの追加や変更が...
-
Accessの追加クエリで既存のテ...
-
Accessでvlookupみたいなことは...
-
SQLで条件指定結合をしたいがNU...
-
ツリー構造をRDBで表現するには?
-
SQLで日付を条件に削除したい
-
リンクテーブルを CopyObject ...
-
Accessのサブフォームで#Name...
-
時間の足し算
-
INSERT時にデータ登録とmaxの発...
-
SQL: SELECT UNIONすると文字数...
おすすめ情報