• ベストアンサー

ACCESSの抽出条件の設定について

ACCESSでの抽出に関する質問です。 あるテーブルに顧客情報があります。 フィールドは「顧客名」「住所」「年齢」として、「顧客名に”山”や”川”を含まず、年齢が40未満」の抽出をする場合、 | 顧客名 |住所|年齢| |Not Like"*山*"| |<40| |Not Like"*川*"| |<40| と入れたんですが、”山”で始まる顧客名が抽出されてしまいます。 もちろん、Not Like "山*"にすると大丈夫なんですが・・・。 間違い箇所をご指摘ください。

  • emico
  • お礼率42% (139/326)

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 クエリデザイン画面でのこととして回答します。 画面下の抽出条件では、同一行に記述するとAND条件になり、別の行に記述するとOR条件になります。 したがって、質問の例だと 「山を含まずかつ40歳以下、または川を含まずかつ40歳以下」 になりますので、結局40歳以下をすべて抽出してしまいます。 したがって、同一フィールドでAND条件を記述する場合は、 上のテーブルからそのフィールド(顧客名)を2列にドロップします。 そして、同じ行にそれぞれ 「Not Like "*山*"」「Not Like "*川*"」 と記述すればOKです。(もちろん同じ行に年齢の条件も付けます。) なお、2つの顧客名のうち片方(どちらでもいい)は表示チェックは外しておけばいいでしょう。

emico
質問者

お礼

ありがとうございます。 条件が違っていたことに気づきませんでした・・・。 指示してくださったやり方、ならびに、同じ欄に「And」でつないだらうまくいきました!

その他の回答 (1)

  • sydneyh
  • ベストアンサー率34% (664/1947)
回答No.1

Accessの場合、抽出条件は、一行につき一つです。 同じ行に並べても反映されせん。 山を選ばない 川を選ばない 40歳以上 と、3行にわたって該当フィールドに条件を当てはめて下さい。

関連するQ&A

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

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

  • access 抽出方法

    お願いします。 複数の住所から複数の住所以外を抽出したい。 抽出条件に Not Like "*"&[テーブル1].[住所]&"*" とし テーブル1に *名古屋市* *大阪市* *静岡市* と複数していしますが上手く抽出できません。 また、他のやり方があれば教えて頂きたいです。 よろしくお願いします。

  • Access 複数の抽出条件

    Access2002 windows2000 (例)次のようなテーブルとします。 フィールド名:名前 年齢 性別 レコード1 :山本 30 男 レコード2 :鈴木 40 女 レコード3 :田中 45 男 レコード4 :森本 26 女 クエリを利用して抽出する時、年齢が40以上で男を条件とすれば (1)年齢フィールドの抽出条件:>=40 (2)性別フィールドの抽出条件:男 として、田中が抽出されます。 では年齢が40以上で男、そして女は全て抽出したい時は(1)(2)の条件はどの様にすればいいでしょう? 抽出結果が 田中、鈴木、森本となりたいのです。 複数のクエリを作れば出来ますが、1つのクエリでは無理なのでしょうか。

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

    いちもお世話になります。Access2002を勉強中の初心者です。 顧客テーブルから選択クエリを作っています。クエリのフィールドには「都道府県」(東京、埼玉、千葉...)と「顧客名」(山田、佐藤、田中...)があります。 「顧客名」の山田以外を抽出したいのですが、但し「都道府県」が東京の場合は山田以外の条件を外したいのです。つまり、埼玉、千葉の山田は抽出しませんが東京の山田は抽出したいのです。 このような抽出条件の設定ができますか? アドバイス、よろしくお願いします。

  • 2つフィールドを連結して検索するには

    MySQLの初心者です。よろしくお願いします。 1つのテーブルにある2つのフィールドのうち、どちらかにキーワードが入っている場合(両方に入っている場合も含む)を抽出したいのですが、検索するキーワードが1個の場合は、下記のようにすれば、うまく動くのですが、 ●1個のキーワードで検索する場合 (例として、2つのフィールドのうちどちらかに「山」のキーワードが入っている場合を抽出) select * from table WHERE (item_name LIKE "%山%" or outline LIKE "%山%" ) ●テーブルの内容(テーブル名:table) item_name | outline ==========+========= 山がある + 山と川 ----------+---------- 山がある + 川と森 ----------+--------- 山がある + 谷と林 --------------------- 質問したいことは、上記のテーブルから、item_nameとoutlineのフィールドのうち、2つのキーワード「山」と「川」が両方含まれるレコードを抽出したいです。上記のテーブルでいうと、抽出の結果、1行目と2行目が抽出したいのです。 ちなみに、下記のように記述したら、上記のテーブルで1行目だけ抽出されます。 select * from table WHERE (item_name LIKE "%山%" and item_name LIKE "%川%" or outline LIKE "%山%" and outline LIKE "%川%" ) 他にも、下記のように試してみたのですが、うまく抽出できませんでした。 SELECT * FROM table WHERE (concat(item_name,outline) LIKE '%山%' and concat(item_name,outline) LIKE '%川%') item_nameとoutlineのフィールドを結合して、結合した文字列で、「山」と「川」の両方が入っているレコードを抽出する方法はありますか? 2つのフィールドの文字列をあわせたなかから、「山」と「川」のキーワードが両方含まれるレコードを抽出したいのですが、何かよい方法はありますでしょうか。ご回答よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • Access 抽出条件を自動で入力したい

    お世話になります。 マクロもVBAも現在鋭意勉強中の初心者ですが、よろしくお願いします。 取引先から送られてくるテーブルの、とあるフィールドにいつも不要なデータが入っています。 作業は、その不要なデータの削除から取り掛かるのですが、これが何気にめんどくさくて 自動化できないものかと、今回、質問させていただきます。 結果として、       フィールド1 フィールド2 フィールド3 フィールド4 抽出条件        like "a*" または           like "b*"               like "c*"               like "d*"               like "e*" ↑のような状態に、マクロないしVBAを使用し、抽出条件に、上記の文字列を自動で入力することは可能なのでしょうか? また、可能ならばどのようにすればいいのでしょうか? テーブルのフィールド数は毎回違いますが、 フィールド2に不要なデータが入っているのは決まっています。 フィールド2のデータ型はテキスト型です。 Access2007を使用しています。 どうぞ、よろしくお願いします。

  • Access]2つのテーブルを比較してフィールドの一部が一致したデータを抽出

    2つの名簿テーブルを比較してどちらのテーブルにも含まれている個人を抽出したいと考えております。 テーブル名とフィールドは以下のとおりです。 ==================== テーブル名「名簿A」 氏名 電話番号 住所 メールアドレス ==================== テーブル名「名簿B」 姓 名 電話番号 住所 メールアドレス ==================== たとえば、この2つの名簿をメールアドレスで一致したものを抽出する場合は選択クエリのデザインビューで「名簿A」のフィールドを読み込ませ、 メールアドレスフィールドの抽出条件として Like [名簿B].[メールアドレス] を入れれば抽出ができたのですが、メールアドレスは、名簿ごとに記入されていたりしなかったりするので、名前での一致を行いたいと思っています。 ここで問題なのが、名簿Aは「氏名」で入力されているのに対し、名簿Bでは「姓」と「名」が別フィールドになっております。 そこで自分なりにやってみたのが、選択クエリのデザインビューで「氏名」のフィールドの抽出条件として Like (*[名簿B].[姓]*) を設定するものでした。 これがうまくいけば最終的には Like (*[名簿B].[姓]*) And Like (*[名簿B].[名]*) という風にして、名簿Aの「氏名」フィールドに名簿Bの「姓」も「名」も入っているものを抽出できるかな?と考えたのですが、上記のように入力すると、自動的に Like ("*[名簿B].[姓]*") となってしまい、何も抽出されなくなってしまいました。 このような方法では希望する抽出は行えないのでしょうか? お分かりのかた、よろしくお願いいたします。

  • Access2000で一致しない値を抽出するには?

    仕事でAccess2000を使ってデータベースを作らなければならなくなりました。 Accessはほとんどさわったことがなく、素人です。 どなたかご教授ください。 よろしくお願いします。 テーブルがAとBふたつあります。 テーブルAには建物名Aと住所Aの2つのフィールド、 テーブルBには建物名Bと住所Bの2つのフィールドがあります。 この4つのフィールドでクエリを作成しました。 この中で、 ・AとBで建物名は同じだが住所が違うもの ・AとBで住所は同じだが建物名が違うもの ・どちらか一方にしかない建物名と住所 この3つを抽出したいのですが、抽出条件はどのようにすればいいのでしょうか? クエリで フィールド 建物名A   住所A  建物名B  住所B 抽出条件 <>建物名B  <>住所B とやってみたのですがうまくいきません。 言い換えれば、建物名Aと住所A、建物名Bと住所B、 この2つが完全に一致しているもの以外を抽出したいと思ってます。 どなたか、よろしくお願い致します。

  • アクセス 複数条件の抽出~出力について

    ■アクセスのフォームにて、複数の条件を入力し、合致するリストをエクセルで出力する   データベースを構築しようとしています。  ⇒この複数の条件を入力する件に関し質問です。 ■目的は、顧客からのアンケート回答結果をDBから取出し、エクセルにて解析を行う事です。  情報量が膨大であるため、セグメントした形で出力し効率を上げたいと考えています。 ○テーブルのフィールド構造:   支店(テキスト型)、顧客No(数値型)、顧客名(テキスト型)、質問1(数値型)、質問2、・・・   ○フォーム「データ抽出」の構造: [支店名1][支店名2] [顧客No1][顧客No2] [顧客名1][顧客名2]       【出力ボタン】 ※上記テキストボックスいずれかに入力された条件に合致するデータが          【出力ボタン】を押すとエクセルに出力されるという構造です。          ※ボタンのイベントに「抽出マクロ」を設定。 ○抽出クエリ: 支店 [Forms]![データ抽出]![支店名1]  Is Null [Forms]![データ抽出]![支店名2]  Is Null 顧客No [Forms]![データ抽出]![顧客No1]  Is Null [Forms]![データ抽出]![顧客No2]  Is Null 企業名 like "*" &[Forms]![データ抽出]![顧客名1]& "*" Is Null like "*" &[Forms]![データ抽出]![顧客名2]& "*" Is Null               ○マクロ(抽出マクロ):  クエリを開く (抽出クエリ)  コマンドの実行(エクセルに出力)  閉じる (抽出クエリ) と設定しました。そこで実行確認すると・・・・  (例)     (1)支店名1だけに入力して、他は空欄で出力ボタンを押下。     ⇒条件セグメントされず、全てのデータがエクセル出力されてしまう。     (2)全ての項目に入力して出力ボタンを押下     ⇒条件セグメントされたデータがエクセル出力される。  という現象が起こりました。  例示(2)は良いとして、(1)の様な空欄がある状態でも、条件にマッチした出力をしたいのですが上手くいいかず困っています。    尚、クエリの抽出条件を支店フィールドだけにした所・・ 支店  [Forms]![データ抽出]![支店名1]   Is Null  [Forms]![データ抽出]![支店名2]   Is Nul 支店名1に入力して支店名2は空欄であっても条件にマッチした出力結果が得られました。 長文恐縮でございますが、どなたか解決法をご教授いただきたく存じます。よろしくお願いいたします。

  • アクセスのクエリーで抽出方法

    以前(9/25)にもこのgooで質問しいろいろ指導を受けたのですがなかなか解決せず、時がたちなかなか回答が得られず、また同じ質問をします。 クエリーで抽出する方法なのですが、例えば a   b 山   50 川   30 のようなクエリーの表があります。フォームでテキストボックスに”山”と入力したら 山   50 と表示することはできますが”すべて”と入力したら 山   50 川   30 と表示したいのです。クエリーにはすべてという文言はありません。 クエリーの抽出条件でaのフィールドに=IIf(フォーム名![Text1],フォーム名![Text1],Is Not Null)と入力するもののうまくいきません。 アクセス超初心者です。なおアクセス97を使用しています。よろしくご指導ください。

専門家に質問してみよう