• ベストアンサー

Access 2007 クエリのあいまい検索について

Access 2007 クエリのあいまい検索について 特定の文字を含むデータ以外を表示させたいと考えています。 下記の文字を含むデータ以外を表示させたい場合 どのように抽出条件を入れればいいでしょうか。 <抽出条件> 担当者もしくは空欄を含むデータ以外を表示 ※「担当者」という文字列です。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.7

抽出条件ではなくクエリの新しいフィールドに、 IIf(Not IsNull([住所]),funcIsHirakana([住所])) とし、抽出条件を False です。表示はチェックをいれません。 それこそ「あいまい」でした。 以上です。

hyogara777
質問者

お礼

ご回答ありがとうございました。ご回答頂きました内容をもとにいろいろ試したいと思います。

その他の回答 (7)

  • layy
  • ベストアンサー率23% (292/1222)
回答No.8

論点が変わっている?。 クエリで「出力対象フラグ」でも作って、担当者文字有無、空欄か否か、ひらがな含むか、アルファベット含むか否か、考えられる判定結果をVBAで求めTRUEやFALSEを返す、で良い。 クエリ側で、この4つの存在判定をそれぞれ組み合わせでみていくのはできなくはないがー、LikeやNOT多発でケース漏れそうでわかりにくい。判定はVBA側に1つに固めて記載した方が良いかと。例えばー、4つなら1111ならすべてダメ、0111なら1つめ条件だけOK、0000ならすべてOK等こんな判定もできる。 条件増減の修正にも耐えるように。

hyogara777
質問者

お礼

ご回答ありがとうございます。VBAも勉強したいと思います。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.6

失礼しました。抽出条件を IIf(Not IsNull([名前]),funcIsHirakana([名前])) としてください。空欄があるとそのままでは エラーになります。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.5

ひらかなが含まれているとTrueを返す関数です。 以下の関数を標準モジュールに貼り付け保存します。 'ひらかなが含まれていたらTrueを返します Function funcIsHirakana(strMojiretu As String) As Boolean If Len(strMojiretu) = 0 Then Exit Function End If Select Case Asc(Mid$(strMojiretu, 1)) Case -32096 To -32015 funcIsHirakana = True End Select End Function 使い方は、フィルターをかけるフィールドを[名前]とすると、 クエリの新しいフィールドに、 funcIsHirakana([名前]) とし、その抽出条件に False といれます。これで名前のフィールドにひらかなが 含まれるレコードは表示されません。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.4

アルファベットについては、 Not Like '*[A-Z]*' でいいと思いますが、ひらがな については関数を作る必要が あります。たとえば、 http://www.vbalab.net/vbaqa/data/access/log/tree_265.htm にあるような関数を少し変更して ひらがなを含む文字列を取り出す 関数に変更します。アスキーコード でひらがなを区別します。他のサイト にも関連情報があります。 http://www.accessclub.jp/bbs2/0048/beginter15717.html 時間があれば、作成して検証しますが。

  • layy
  • ベストアンサー率23% (292/1222)
回答No.3

クエリデザインでLikeを使っての抽出を学習して下さい。 文字「担当者」を含む、空欄を含む、この判断の裏返しです。ある文字を含むレコードだったら1、以外は0と別途判断項目を準備する。0を抽出します。判断結果がより明確になります。 WHEREに書くときANDとORを間違えないように。

hyogara777
質問者

お礼

ご回答ありがとうございました。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

#1です。クエリの抽出条件に直接 書く場合です。

hyogara777
質問者

補足

ご回答ありがとうございます。最後に質問させてください。 ひらがなとアルファベットの文字列については、データに抽出しないということも可能でしょうか。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

Not Like "*" & "担当者" & "*" AND Not Is Null

関連するQ&A

  • クエリーで全部のデータを抽出する方法

    アクセスのクエリーでデータを抽出する時、具体的にはフォームでデータを入力し抽出するのですが、たとえばフォームのテキストボックスに数字を入れないとそのクエリーのフィールドは抽出がかからないようにしたいのです。(抽出フィールドが1つなら数字をいれなければクエリーのデータすべてが表示される) ----------------------------------- フィールド   A      B     c テーブル   テーブル1 テーブル1 テーブル1 抽出条件    []    [] または    ---------------------------------- 上はクエリーのデザインですがクエリーをひらくと抽出条件をきいてきますがA列は何も入力しないでB列では1と入力するとBの列に1の入ってるレコードを表示させたいのです。(もし空欄が無理ならAの列の時何かある文字を入力すると全部表示になる、でもいいです。) まわりくどくなりましたが、アクセス超入門者です。よろしくおねがいします。

  • Accessのクエリ

    初めまして。Accessのクエリについての質問です。 Access2003を使っています。 検索フォームを作り、その検索フォームにテキストボックスを2つ作り、そのテキストボックスに検索したい言葉を入力し、コマンドボタンで作った検索ボタンを押すとマクロでフィルタの実行がされデータを抽出できるというものを作りました。フィルタには選択クエリを使用しています。抽出したい2つのフィールドの抽出条件にあいまい条件のLike "*" & [Forms]![フォーム名]![テキストボックス名] & "*"を入れています。 今はテキストボックスが2つですが、もっと増やしていろんな条件で検索出来るようにしたいので、3つ目のテキストボックスを作り、抽出条件も同じように入れました。ですが、そうすると今までちゃんとできていた最初の2つのテキストボックスによる抽出が違った結果となりでてきました。このとき、新しく作った3つ目のテキストボックスは空欄なので最初と同じ結果が出ると思ったのですが、これは抽出条件が3つはできないということでしょうか?どなたか教えてください。

  • ACCESSでクエリがうまく使えません。

    ACCESS2003初心者です。 製品区分というルックアップがあります。 ルックアップの列数は2、連結列は2になっています。 1列目 | 2列目 薬剤A | 1 薬剤B | 2 ・ ・ ・ 薬剤S | 19 まであります。 このデータの11までをクエリで抽出したいのですが、 クエリの製品区分の抽出条件に <="11" と入力して実行しても上手く処理してくれません。 1と10と11だけに該当して表示されます。 >="1" And <="11" としても同じ結果でした。 ※仮に、抽出条件に"8"と入力して実行すると 問題なく、8に該当するデータが表示されます。 他の数字も同じように抽出されます。 11以下に該当するデータだけを抽出したいのですが、 どこが悪いのでしょうか? そもそも、ルックアップの2列目を抽出するような方法は良くないのでしょうか?

  • ACCESSで「"」を検索する

    テーブルデータの中に「"」を文字として使用している場合 クエリーで抽出条件に「"」を入れて検索しようとすると 指定した式に不正な文字が含まれています と出て検索できずに困っています どうにか「"」を含むデータを検索できないでしょうか ちなみにACCESS97です

  • [Access]クエリの抽出条件について

    アクセス初心者です。よろしくお願いします。 クエリの抽出条件に別テーブルのフィールドをあいまい検索で入れたいのですが方法がわかりません。 データシートビューには検索したいテーブル(tbl_1)と 検索する文字列が入ったテーブル(tbl_2)の2つを表示させています。 デザイングリッドは検索したいフィールドを表示し、 抽出条件にLike "*[tbl_2]![フィールド名]*"と入れましたが該当するものがあっても表示されないのです。 どうしたらよいでしょうか。ご伝授ください。

  • Accessのクエリ機能について

    Accessで検索フォームを作成しております。実験記録シートにおいて、担当者ごとの実験のみを抽出する検索フォームを作成しています。「担当者選択」というコンボボックスを用意します。一方、クエリにおいて、「担当者」の抽出条件に、=[Forms]![実験記録シート検索フォーム]![担当者選択]としておけば、担当者選択で指定されたのみのレコードが問題なく抽出できます。 ここで、「担当者選択」を空欄にしておけば、すべてのレコードが表示できるようにしたいのですが、うまくできません。どなたかご存じの方がいらっしゃれば教えてください。 よろしくお願いします。

  • アクセス クエリ複数抽出条件(空欄と空欄以外)

    アクセス2003を利用しています。 テキストをアクセスのに一旦取り込んで、クエリで抽出条件を設定し、該当するものを出したいのですが、  例) 管理番号  確認作業      1        全完了      2        確認中      3        全完了      4      5      6        確認中      7             抽出条件として、確認作業の列の ・空欄 ・確認中  と、空欄と、全完了のものを抽出したいのですが、or検索でもダメですし、 いくつか試してみたのですが思うようにデータを抽出することができません。 初心者のため、上記の条件を満たす方法でデータ抽出できる、簡単な抽出方法があれば 教えてください。 宜しくお願いいたします。

  • アクセスのクエリ抽出について

    アクセスで、テキストデータを開き クエリウィザードからフィールドの抽出条件として 文字が含まれているものと文字が含まれていないものと それぞれ抽出したいのですが Likeの式から抽出出来るのでしょうか? なにかの文字を含んでるデータに対しては 抽出できるのですが、うまく抽出出来ません。 下記のようなイメージで抽出したいと思ってます。 例 データ合計5件    "00000001234-23 " "12345672-1-2 " "" "55145672-1-3-2 " ""    データあり3件    "00000001234-23 " "12345672-1-2 " "55145672-1-3-2 "    データなし2件    "" "" 宜しくお願いします。

  • アクセス クエリー 抽出条件について

    アクセス クエリー 抽出条件について たとえば文字列で5桁の仕入先コードフィールドが有るとします。で1と3と5を除くレコードを表示させたいときは 抽出条件をどの様に設定したらよろしいでしょうか?

  • ACCESS2003でクエリを使った検索フォームを作っています。

    ACCESS2003でクエリを使った検索フォームを作っています。 クエリは以下の様になっています。 ----------  番号   タイプ   品名  1111   AA     商品1  2222   AA     しょうひん2  3333   BB     商品しょうひん3 ---------- 品名のフィールドの抽出条件に ---------- Like "*" & [Forms]![品名検索フォーム]![品名検索] & "*" ---------- と入れています。 品名検索フォームは帳票タイプで、フォームヘッダーにテキストボックスを設け 「品名検索」と名前をつけています。 テキストボックスに【商品】と入力すれば番号1111と3333が、【しょうひん】と入力すれば 番号2222と3333が抽出されるように設定し、ここはうまく動きました。 ただ、このフォームを開いた際、テキストボックスは空欄になっているため、全レコードが 表示されてしまいます。テキストボックスが空欄の際は、何も表示したくないのですが どこを触ればいいのでしょうか? どうかよろしくお願いいたします。

専門家に質問してみよう