• ベストアンサー

二つ以上あるものだけを抽出したいのですが・・・

Accessのことなのですが、一つのフィールドをに 同じ文字列が2つ以上あるレコードだけを抽出したいのですが、どうしたらよいでしょうか?

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

  • ベストアンサー
  • Musaffah
  • ベストアンサー率36% (37/101)
回答No.4

#3です。 つまり、こんな仕様でいいのですね? 1)=================================== テーブルにあるフィールド名は少なくとも ・タレント名 ・性別 ・出演番組名 とする。 2)=================================== 1人のタレントが複数の番組に出演している場合は、その分のレコードで登録する。 (あるタレントが3つの番組に出演していたら、そのタレントのレコードが3行ある事になる。) 3)=================================== 登録されている全番組について、出演しているタレント名一覧が番組名単位でクエリで表示できるようにする。 上述の仕様でよいのであれば簡単でしょう。 クエリで出演番組名を昇順(あるいは降順)にソートして表示させればよいのでは? すると、出演番組名単位で並び替えされます(同じ番組名がまとまって表示されます)。 もし、仕様3)が、「ある番組を入力してその番組に出演しているタレント一覧を出力する」仕様であれば、クエリで出演番組名の"抽出条件"に=[番組名を指定してください。]と入力してください。 クエリを実行すると、"番組名を指定してください。"というポップアップ(パラメータ入力画面)が表示されます。そこで入力した文字列(番組名)に出演しているタレント一覧が出力されます。 ある程度Accessの操作(設定)方法を割愛して書きましたが、これで分かりましたか? (とその前に、これで回答になってます?ちと勘違いしているような気が・・・。)

その他の回答 (3)

  • Musaffah
  • ベストアンサー率36% (37/101)
回答No.3

質問内容だけではいまいちイメージが湧きません。 具体例を提示してもらえませんか?

kisaragi221
質問者

補足

下記の問題の仕方がわからなくて質問をしました。 ~問題~ 「テーブルにタレント名、性別そのタレントが出演している番組名(タレント一人当たり1つ)などをが書かれてあって、クエリで、同一の番組に出場している人全員のデータを表示させなさい」 というものでした。 つまりクエリで、同一の番組に出てるのタレントを表示したいのですが、番組が何種類もあり、いろんな番組で、同じ番組に出場している人がいるので、どうしたら、一気にそれを表示させることができるのかが分からないんです。 これで質問を理解していただけましたでしょうか? 質問の仕方が悪くてすみませんでした。m><;m

noname#15065
noname#15065
回答No.2

>同じ文字列が…  文字列は何文字ですか?  1文字でもマッチすれば抽出するのでしょうか?  2文字マッチすれば抽出するのでしょうか?  それとも?

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

自信はないですが、 アクセスはレコード相互間の関係を、全体的に捉え、直接レコードごとに何かをするのは苦手なように思います。クエリ・SQLなどで。 同じ文字列がMDBレコード内で、「ある」か「ない」かは、全レコードを読み終わらないと判らないですね。 しかし読み終わったら、前のレコードに対し処理はできない。 全レコードをメモリに展開・ストックすれば別ですが。 --- そこで便法は レコードを1たん、問題の文字列のフィールドでソートする。 するとフィールド全体で同じかどうか(または先頭から比較して同じかどうか)を問題にするパターンでは、隣り合うレコードとなる。 その後ADOなど1レコードづつレコードを扱えるファイルアクセスメソッドで、初め2レコード、その後で1レコード読んで、直後(後)と同じかを見る。同じなら、先入れを先出しする。」 *語句*(*はワイルドカードを示す)式に、フロートした位置で同じものがある(「語句」は出てきたとこ勝負、決まってない場合)のも、見つけたいなら、 2文字列から、共通部分を割り出すアルゴリズムも必要で、さらに飛び離れたレコードも対象にするのは、メモリに全レコードストックする以外の方法では、難しいと思う。

関連するQ&A

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

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

  • DataGridViewでのデータ抽出について

    C#からAccessデータベースを呼び出し、それをDataGridViewに表示しました。 その上で、条件に合うレコードのみを表示するコードを書こうとしました。 元のAccessのフィールドにはテキスト型のデータが入っています。         DataView dView; dView = new DataView(dSet.Tables["t_" + (テーブル名)] , "フィールド名=" + (文字列型変数), "", DataViewRowState.CurrentRows); dataGridView.RowHeadersVisible = false; this.dataGridView2.DataSource = dView; これをデバッグすると、2行目で、EvaluateExceptionはハンドルされませんでした。というエラーが出ます。 列[「(文字列型変数)]は見つかりません」という内容です。 これを回避して、フィールドに特定の文字列が入っているレコードを抽出して、DateGridViewに表示させる 方法はないでしょうか。 ちなみに数値型のレコードを抽出することはできているレベルです。 また、フィールドに日付が入っているような場合、ある期間内のレコードを抽出するやり方を ご存知のかたがおりましたら、お教え願います。 (直接のやり方でなくても、「この本が良い」というようなアドバイスでも大いに助かります)。 どうかよろしくお願いします。

  • フィールドにテキストしか入ってないレコードの抽出

    ハイパーリンク型のフィールドにテキストしか入ってないレコードを取り出したいです。 1レコード目が 表示文字列:http://jp.msn.com アドレス:http://jp.msn.com (クリックしたらURLが開く) 2レコード目が 表示文字列:http://jp.msn.com アドレス:null (クリックしても何も起きない) の二つのレコードがあります。 クエリで2レコード目のように ハイパーリンク型のフィールドなのに、表示文字列しか入ってないレコードを抜き出したいのですが やり方がわかりません。 クエリの抽出条件に Not Like "*#*" を入れてもどちらも該当してしまいます。 ハイパーリンク型のフィールドのアドレスがNullのレコードの抜き出し方を教えてください。 よろしくお願いいたします。 (当方access2003です)

  • アクセス2010でフィールドから抽出し加工の仕方

    アクセスの初心者です。 助けてください。 現在、今週中に、 下記の事を今週中にしあげなくてはいけません。 (1)3000件以上のデータから特定のフィールドから不規則な文字列(ファイル名)を抽出し (2)その文字列にHTMLのタグを前後に加え、 (3)その3000件以上あるデータの同じレコードの別フィールドに挿入する をしたいのですが、 どのようなクエリを使っていけば確実に間違いなく出来るかを どなたかお教え下さい。 助けてください。

  • アクセスのクエリ 1文字以上を抽出

    アクセスのクエリの抽出条件で、「1文字以上」とする方法を教えてください。 抽出条件をビルドで作ってみたのですが、 勝手にダブルコーテーションがついてしまいます。 1文字以上の値はあるのに何も抽出されません。 sql文は SELECT [テーブル1].[フィールド1] FROM テーブル1 WHERE ((Len([テーブル1]![フィールド1])>"1")); となっています。 ご教授よろしくお願いします。

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

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

  • Accessクエリの抽出条件に関するご質問

    Accessクエリの抽出方法に関し、以下のようなことはできるのでしょうか? 特定のフィールド内にカタカナ文字列のみのレコードがあった場合、別のフィールド内の対応するレコードの中身を検索し、ヒットした場合の横の文字列(左横、右横どちらか)がカタカナだった場合のみ抽出させたい。 (例) テーブル名:TEST フィールド:「No」、「文字列」、「例文」 No   文字列          例文 1   ああああ      あいああああお。 2   あアああ      あいあアああお。        3   アアアア       あイアアアアお。 4   アああア       あイアああアお。 5   イイイイ        イイイイアアお。 6   漢字漢字      あイ漢字漢字お。 7   ウウウウ      あウウウウ字お。 <抽出結果> No   文字列          例文       3   アアアア       あイアアアアお。 5   イイイイ        イイイイアアお。 ・No3は、文字列がカタカナのみ、例文中にヒットし、ヒットした左の文字がカタカナ「イ」である。 ・No5は、文字列がカタカナのみ、例文中にヒットし、ヒットした右の文字がカタカナ「ア」である。 ※No1,2,4,6はそもそも文字列がカタカナのみじゃない為、抽出しない。 ※No7は、文字列がカタカナのみ、例文中にヒットしたが、ヒットした左右の文字列がカタカナじゃないため抽出しない。 非常にわかりづらくてすいません。 こんな複雑なことができるかわかりませんが、ご教示のほどよろしくお願いいたします。

  • ACCESS クエリ 条件以外のレコードを抽出するには?

    クエリで、抽出条件(文字列)以外のレコードを全て抽出したいのですが、うまくいきません。 そのフィールドには空白もあり、 抽出条件を「Not In ("A","B")」とすると、 "A","B"以外の文字列が抽出され、空白のものは抽出されません。 「"A"や"B"でない、他の全てのレコードを抽出したい」という場合、どのようにすればよいのでしょうか?

  • Accessでの抽出について

    Accessで下記のようなテーブルがあるとします。 フィールド1  フィールド2  フィールド3 ----------------------- Aさん      20       200 Aさん      10       180 Bさん      10       300 Cさん      10       250 Cさん      30       310 条件1・・・フィールド2が「20」 条件2・・・フィールド3が「200」 この条件が当てはまる、フィールド1のデータはすべて抽出というふうにしたいのですが・・・。 (上記のテーブルでは、1件目と2件目のレコードがあてはまります。) どのようにして抽出したらよいでしょうか?よろしくお願いします。 Access2000を使用します。

  • Access クエリ 抽出条件

    Access の クエリ における 抽出条件 の 書き方についてご質問させていただきます。 クエリには、左から『商品名』、『出荷数量』、『注文数量』の3列がございます。 各レコードの『出荷数量』フィールドの値と『注文数量』フィールドの値を比較し、 『注文数量』フィールドの値の方が大きいレコードだけを抽出したいのですが、どのように抽出条件を記載すればよろしいでしょうか? 元データは1つのテーブルに格納されています。 例:注文数量:500、出荷数量:200など出荷数量が少ないレコードを抽出対象 注文数量:100、出荷数量:100など注文数量=出荷数量レコードは抽出対象外

専門家に質問してみよう