• ベストアンサー

ACCESS クエリー 抽出条件が多い場合

アクセス初心者です。(2003です) 商品コードのテーブルから、 32個のキーワードを含むものを抽出したいです。 商品コードの中のキーワードの位置は 先頭や最後など決まりはなく、バラバラです。 クエリの抽出条件の欄が9個しかないので、 9個ずつバラバラにクエリを作ってみました。 *02S* *05F* ... ... というふうに条件を並べています。 この3つのクエリ結果を エクセルに出してはっつけて1枚のマスターに しようかと思っていますが… かなり手作り感があふれていて…(^^;)汗汗 もうちょっと単純な方法はないでしょうか? また、なんだか心配なので エクセルでテーブルをフィルタにかけ キーワードを一個ずつ抽出してみましたが アクセスで出た結果と違います…。(エクセルのが少ないです) 重複するキーワードがあるからかと思い ピボットで見ても、重複は4件しかありません。 クエリを分けているからでしょうか? どっちが正しいのでしょうか? 自分の作ったデータにまったく信頼が持てません。。。(--;) これを出さないと退社できないのですが チーム内に誰もいないので困っております。 助っ人お願い致しますm(__)m

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

  • ベストアンサー
  • yatoaa
  • ベストアンサー率30% (110/362)
回答No.1

9行は  (カーソルをあてて) 挿入 ↓ 行 でふやせます ---------------------------------- 参考まで わたしはあいまい検索には Like命令を使っています(* 使用 )

pohepohe-
質問者

お礼

お~そうだったんですかぁ!!!(*_*) 気づけなかったです…。 ネットのキーワードで「上限は」とか探してしまいました。。。 もっと早く聞けばよかった(すでに残業タイム★) ありがとうございます!! とりあえず32個入れました(*使ってます) でもとっても重たいです。。。固まってます たくさん入れると重くなるのでしょうか。

その他の回答 (3)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.4

>32個入れました(*使ってます ORで32つないだのですか? 皆さんLikeの使い方を勉強しなおしたほうがいいみたいですね Like "*[02S,05F,・・・]*"

pohepohe-
質問者

お礼

ありがとうございます! きっとそういう感じだろうなぁ…と思いつつ やってしまいました☆ はるか昔に習った気が。 あとから、 「キーワード全部、前後にハイフンつけて」って言われたので 今回に限り、これでトクしちゃいました(笑) 次回から教えて頂いた方で入力することにします。 ありがとうございます!

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

抽出する項目のテーブルを作成して 選択クエリで元のテーブルと今回のテーブルを連結しないで選択 元のテーブルをクエリ上に展開して検索するフィールドの条件欄に Like "*" & [条件テーブル].[条件] & "*" ※重複を防ぎたいのならクエリの(デザイン上)プロパティで 固有のレコードを「はい」にしてください。

pohepohe-
質問者

お礼

ありがとうございます! 文章で書いてあると理解するのが難しいですね… (すみません…アホかも…涙) 抽出する条件がキーワードだけの場合も これでいいのでしょうか。 重複を防ぐにはプロパティで…? それやりたいです!! 固有のレコードって、項目右クリックでは出ないですね? でもこの辺は操作なので、聞いてはいけないんでしょうね(^^;) 調べてみます~

  • x0000x
  • ベストアンサー率52% (67/127)
回答No.2

こんにちは。 >クエリを分けているからでしょうか? >どっちが正しいのでしょうか? データと条件が見えないのでなんともいえませんが、 検索条件が重なるデータとかが存在しませんか? たとえば、"10" と "010"など。 ACCESSで1回で検索するなら、クエリデザインでSQLビューに切り替えて コードを記述しては如何でしょうか? 現在作成済みクエリの内、1つを開いて、コンテキストメニューの「SQLビュー」を選択します。 SELECT ~ FROM xxx WHERE 商品コード like '*02S*' OR 商品コード like '*05F*'     ~  OR 商品コード like '*XX*'; として、後にデータシートビュー等で表示してみてください。

pohepohe-
質問者

お礼

たとえば、"10" と "010"など。 そう、それがありそうなんです! しかも、キーワード二つ入ってるものも発見しました(目視で) 元のデータの意味がよくわからないので 水中で糸コンニャクでもつかんでいるかのような感触?です☆ 皆さん速攻お返事ありがとうございます。 何せ「これから教えるので問題ないですよ」って いわれている職場で一人きりだったので… ありがとうございます!! お返事が高等なのでびびっておりますが とりあえずまた質問致します。

関連するQ&A

  • ACCESSクエリーの抽出条件について

    OS WIN7 ACCESS 2007使用です。 クエリーの抽出条件について何ですが、テーブルにコードというフィールドがありまして、そこには数値が入力されています。 コード 1 2 3 4 5 ・ ・ このテーブルを元に選択クエリーを作りたいのですが、条件としてコードの値に2と3両方がある場合、2のレコードだけを表示せず、どちらか一方の数値だけの場合またはどちらもない場合は、全てのレコードを表示するようにしたいのです。 抽出条件はどのように書けばよいのでしょうか? いろいろ試したのですが、うまくいきません。 どなたかお助け下さい。

  • Access 選択クエリーの抽出条件

    Access2000を使っています。 選択クエリーの抽出条件にテーブルの値を設定することは可能でしょうか? たとえば、テーブルAに対して、抽出条件をテーブルBのデータでコード番号 ”B*”(コード番号にBのつくもの)を抽出したいのですが・・・。 よろしくお願いします。

  • Accessクエリの抽出条件

    Access2000を使用しています。 クエリの抽出条件にテーブルの値を使用したいのですが、その方法がわかりません。 テーブルAには、「日付」、「当者コード」 などの項目があります。 テーブルBの項目は「担当者コード」のみです。また、1レコードしか登録 されていません(2レコード以上になることはありません)。 そこで、テーブルAに対するデータ抽出条件を、テーブルBの「担当者」としたいのですが、 どのように記述すればよろしいでしょうか・・・? よろしくお願いします。

  • Accessのクエリのデータ抽出のエラー?について

    お世話になります。 Accessのクエリでのデータ抽出について教えてください。 テーブルからフィールドを商品コードと出荷日の2つを選択し、 集計を使用して、商品コードでグループ化して、出荷日で最大にします。 すると、抽出条件で商品コードを指定すると抽出できるのですが、抽出条件で 指定せずすべてのデータを抽出すると出てこない商品コードがあります。 たとえば[A]という商品コードを抽出条件に指定すると抽出できるのですが、 抽出条件で指定せずすべてのデータを抽出するとこの[A]という商品コードが 抽出されません。 何が理由なのかお分かりになりましたらどうぞよろしくお願いいたします。 当方SQLがわかりませんのでクエリのデザインビューでご説明いただけますと 幸いです。

  • ACCESS2007 クエリの抽出条件について教えてください

    ACCESS2007で、ルックアップ列(コンボボックス)を使用したテーブルがあります。そのテーブルをクエリにて、コンボボックスの条件別に抽出させたいのですが、その抽出条件を教えていただけませんでしょうか。 コンボボックスリストの中身(A,B,C)       A→Aのみ抽出したクエリ       B→Bのみ抽出したクエリ       C→Cのみ抽出したクエリ という風に作成したいのですが。 お忙しいところ申し訳ありません。よろしくお願いします。

  • Access2010クエリ抽出条件(Like)

    Access2010のクエリで、対象のテーブルの商品名を使って抽出条件に「Like "*PB*"」としました。すると「PA 配管カバーB」(すべて全角)の商品が抽出の対象となっていました、何故なのか理解できません。どなたかAccessに詳しい方、理由をご教示ください。

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

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

  • access2007 クエリで抽出

    初心者です。クエリで抽出したのですが、一部のデータが抜け落ちます。抽出条件のフィールドはテキスト型で、元のテーブルでコピペで統一しましたが、同じデータが抜け落ちます。削除してやり直しても同様でした。重複クエリを作成するとこのフィールドが重複して出てきます。どこを直したらいいのか見当がつきません。よろしくお願いします。

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

    先の投稿に重複しますが、 それぞれ異なるテーブルについて、 クエリーで、、 Between #5:00# And #19:00# Between 500 And 1900 上記の方法等で同じ数値ではなく、 期間に幅をもたせて一致としそれぞれの 一致データを抽出するクエリーは つくれますか? もちろん抽出対象のテーブル、列はそれぞれ同じ書式です。 > between関数を使って、 フィールドのデータ型が日付/時刻型の場合 抽出条件欄に、 > 5:00から19:00を抽出したい、 Between #5:00# And #19:00# > 5:00から25:00を抽出したい、 Between #5:00# And #23:59# OR Between #0:00# And #1:00# Access の日付/時刻型では、25:00 というような表現はできないので、上記のように分割することになります。 > また上記がテキストだった場合も、 > 500から1900を抽出したい フィールドがテキスト型の場合、テキスト比較になり数値比較とは異なる抽出結果になるので、 フィールドに Val([テキスト型フィールド]) と式を設定して数値型に変換します。このの抽出条件に、 Between 500 And 1900 と設定します。 通報する

  • Accessで任意のテーブルのフィールド値をクエリの抽出条件にできますか?

    Accessで任意のテーブルのフィールド値をクエリの抽出条件にできますか? 工程管理のAccessDBがあり、毎日更新される工程を管理するため、数種類の選択クエリを作成しています。 そのクエリからExcelのデータベースクエリを使ってExcelシートにクエリ毎に各シートに取り込んでいます。 Accessクエリは不定期で抽出条件を変更しています。 抽出条件はどのクエリでも同時に同じものを使うところが多いため、任意に入力した値を抽出条件に指定できれば、一度で全クエリの抽出条件を変更できるのではないかと考えています。 色々調べてもフォームを使った方法は紹介されていますが、上記の条件下でいい方法はないでしょうか? 抽出条件は『Is Null Or >#2008/06/30#』のような感じです。

専門家に質問してみよう