Windows8、Access2013でのクエリで環境依存文字が正しく表示されない問題の解決方法

このQ&Aのポイント
  • Windows8、Access2013で環境依存文字を検索する時、正しく表示されません。クエリで環境依存文字を含むデータを検索すると、正しく表示されない場合があります。
  • この問題はAccessの誤動作かもしれませんが、アップデートや特殊な方法を試すことで解決する可能性もあります。Microsoftの修正を待つ必要があるかもしれません。
  • 正しく環境依存文字を含むデータを表示する方法があるかどうか、Access VBAなどの特殊な方法を使うことで解決できる可能性があります。
回答を見る
  • ベストアンサー

Windows8、Access2013でのクエリ

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件のみの表示になりました。

atom900
質問者

お礼

お返事遅くなりました。 貴殿の教えていただいた通り、「strcomp」を使えばばっちりでした。 なるほど、こういう方法も可能なのですね。 (SQL文に使える関数をもっと勉強しなければいけませんね。>自分) ありがとうございました。 解決したので締め切らせていただきます。

その他の回答 (1)

回答No.1

Accessから遠ざかって13年。もはや、簡単な関数さえうろ覚え。ですから、私の回答は、多分、参考にならないでしょう。 Q、1件目の「吉岡 雄一」を抽出する方法。 A、AscW関数を使う。 SELECT * FROM テーブル名 WHERE (((AscW(Left([名前],1)))=-10174) AND ((名前)="吉岡 雄一")); 吉は、土口です。 PS、解明は不十分。 >環境依存文字を検索条件に含めた場合、 >環境依存文字含む文字列とそれを抜いた文字列に一致する複数のレコードを戻す。 >ならば、環境依存文字含むで積を取れば良い。 このように考えてAscW関数を使いましたが、あくまでも素人の予想。プロの回答をお待ち下さい。

atom900
質問者

お礼

すみません、ここの質問は初めてだったので、使い方が分からず、補足になってしまいましたが、 本来、お礼という形でコメントすべきでした。 失礼しました。

atom900
質問者

補足

ありがとうございます。 そういう方法もある事が解りました。 ただ、今回は3件のテストデータだから教えていただいた方法で可能ですが、 本来、名前検索を行おうとしてるので、どんな名前が来るか、どんな名前で検索されるかわからないので、 そのたびに環境依存文字かどうかを1文字ずつチェックすることは、残念ながら運用上無理かと思います。 ただ、何かの時にはこういう方法もあるんだと覚えておきます。 ありがとうございました。

関連するQ&A

  • アクセスクエリ

    アクセスクエリのフィールド MS-accessのクエリで質問です クエリで、3つのテーブルがあります。 どのテーブルのフィールドにも[売上]があります。 この3つのテーブルの[売上] フィールド1列に表示させる方法はありませんか

  • Access97でクエリーのクエリーが表示されない。

    すみません。どなたかわかる方見えましたら教えてください。 当方、Win2000、Access97で生産管理のDBを作って管理をしています。 PCの調子が悪くて再インストールしたらクエリーの集計値を他のクエリーとリンクさせて表示させていたのが表示しなくなりました。 簡単に説明すると、「材料在庫」のテーブルがあり集計クエリーで材料名をグループ化して残量を集計している「材料在庫クエリー」と生産計画テーブルの材料名とをリンクさせてクエリーを表示させています。 症状1 再インストールする前はちゃんと表示されていましたし、他の同じ環境のPCでそのDBを動かしても表示されます。 症状2 エラーが出るわけでもなく、空白になっています。 症状3 リンクの形式を現行は「生産計画テーブル全部と在庫材料クエリーの同じフィールドだけ表示させる」にしていますが、逆の設定にするとなぜか表示されます。 症状4 材料在庫クエリーを一旦テーブル作成して同じようにリンクさせるとちゃんと表示されます。 症状5 ソフト的におかしいと思ったため再インストール作業は3度やり直しましたので間違いはないと思います。Access97はすべてインスと標準インスを試しましたが両方だめでした。 また、OSをインスしてから環境をすべて整えた上(サービスパック4など)でAccessインストールや、OSのみ入れてAccessインストールをこころみて見ましたが一緒の症状でした。 上記の点からクエリーのクエリーのリンクが表示されないようになってしまっている様ですが、何か同じような事例等で解決したことはないでしょうか? この症状だけだといいのですが他にもおかしなところがあるとDB自身使えなくなるので非常に困ります。 もう私では直す手段がないです・・・・・ 何とかよろしくお願いします。

  • アクセスのクエリで

    アクセスのクエリで、テーブルAのフィールド1には数字、×、アルファベットの組み合わせの文字がありますが、この中からアルファベットを消去した表示にする事はできますか? 例えば、T24.70×17.5 ならば、 24.70×17.5にしたいです。 誰か教えて下さい。よろしくお願いします。

  • Accessのクエリについて

    Accessの初心者です。 “クエリ”がよくわからなくて困っています。 (1)テーブルの情報を更新した場合、クエリも自動で内容が更新するのでしょうか? 複数のクエリがある場合、テーブル更新後すぐにアクセスを閉じて、次にアクセスを起動させた時はクエリの内容も更新されるか。 それとも、テーブル更新後に各クエリを実行しないと更新しないとでしょうか。 (2)クエリ実行後、表示されたデータの一部を書き換えて出力した場合、元のテーブルの内容も変更されてしまうのでしょうか。 教えてください。 どうぞよろしくお願い致します。

  • アクセスのリレーションシップとクエリ

    私は、アクセスの初心者です。なので、難しいことはよく分からないのですが、アクセスではある1つのフィールドをキーにしてくっつけたりすることができるじゃないですか?そのキーを設定したりするのはリレーションシップでも、クエリでも同じような感じで行うと思うのですが、その2つの違いはクエリはそれをテーブルとして表示できるのに対して、リレーションシップはただ定義するしかできずテーブルとして表示はできないのでしょうか? あと、クエリとかである条件で抽出したテーブルの1つのフィールドのSUMを出したいのですがどういった条件式を書けばいいのでしょうか? なにぶん、初心者ゆえに質問が分かりにくいと思いますが、どうかよろしくお願いします。

  • アクセス2010 N:Nのマッチングクエリ

    アクセス初心者です。 テーブルAとテーブルBのマッチングで両テーブルでマッチしないデータも 表示させたい場合、どのようなクエリにすればよろしいですか? テーブルA全件、テーブルB全件 → クエリ表示(マッチするデータは1件で表示) 例 ■テーブルA CD 数 010 1 020 5 030 3 ■テーブルB CD 数 020 7 030 6 040 2 □クエリ CD 数 010 1 020 12 030 9 040 2 よろしくお願いします。

  • ACCESSクエリーについて

    アクセスにてクエリ作成後、クエリを開こうとすると、JOINが一致しません と、表示が出るのですが、どういう意味ですか?解決方法を教えて下さい。

  • Access2002でクエリからVBAへの読み込み

    10個程前の質問で「Access2000でテーブルをVBAからテーブルを読み込む方法・・・」というのがありますが、私も同じ状況で3日程悩んでいたのですが、この記事を見て指示通りで解決しました。 本題の私の質問ですが、テーブルをVBAに読み込めるのでしたらクエリもVBAへ読み込めるのでしょうか? (1)クエリ→VBA→クエリ (2)クエリ→VBA→テーブル 記述の仕方を教えてください。Access2002です。

  • アクセス・選択クエリについて

    アクセス・選択クエリについて こんにちは。現在、選択クエリについて悩んでおります。 テーブルAとテーブルBからそれぞれ3つのフィールドを選び、選択クエリを作成。しかし、出来上がったクエリのデータシートには一切データが表示されていません。ならばと思い、テーブルAからだけ3つのフィールドを選びクエリを表示させると、きちんと表示します。テーブルA,テーブルBには当然主キーが設定されていますが、その事と関係するのでしょうか?ご存知の方、どうか教えてください。宜しくお願い致します。

  • ACCESSのクエリの中でのクエリ指定

    ACCESSのクエリで複数テーブルを結合させ明細表示させました。 その明細作成クエリーを更にそのクエリをテーブルと指定して 合計のクエリを作成して結果を確認すると合計が違っていました。 確認の為、集計を取りその明細クエリーをクエリー上でテーブル 指定してみたところ、元の明細クエリーのみの場合とレコード数 がかわっって表示されまました。 クエリーのテーブルにクエリを指定するのはNGなのでしょうか。 何方かなぜそうなるのか、また、正しい方法があれば教えてください。 宜しくお願いします。