Accessのデータ検索時、大文字と小文字(全角、半角)を区別するには?


田中  2004-04-09 18:50:03  No: 82976  IP: [192.*.*.*]

いつもお世話になっております。
田中と申します。

早速、質問させて頂きたいのですが
VBからAccessのデータを検索する際
大文字と小文字(全角、半角)を区別するには
どうすればいいのでしょうか?
Accessのテーブルには「GE-20」で登録してあるのに
「ge-20」で探しても、「ge−20」で探しても
値を取得してきてしまいます。

とあるページに
Accessでは区別しての検索ができないため
データを取得後
StrComp関数を使用しないさいと
書かれていました。
しかし、その方法を使うのは
ちょっと面倒に思えてしまい・・・。

他にいい方法を御存知の方がいらっしゃいましたら
お知恵をお借りできればと思います。

以上、よろしくお願い致します。

編集 削除
魔界の仮面弁士  2004-04-10 07:25:22  No: 82977  IP: [192.*.*.*]

Accessで、MSDEを使っているのかJetを使っているのか荷もよります。
Jetで日本語形式のmdbを作った場合、全角・半角・大文字・小文字・清音・濁音・半濁音等は同一視される仕様です。MSDEの場合は、バイナリ比較モードでDBを再構築すれば大丈夫でしょう。

> Accessでは区別しての検索ができないため
Jet SQLのWHERE文での検索をStrComp関数を使って行うようにすれば、バイナリでの比較も可能となります。ただし、全データに対してStrComp関数を使う事になるため、インデックスが使われず、検索速度に大きな影響を与える可能性があるという点には注意が必要です。また、JetのSandBoxモードの設定によっては、SQL中でVBA系関数を利用する事ができない可能性もありえます。

編集 削除