- ベストアンサー
二つ以上あるものだけを抽出したいのですが・・・
Accessのことなのですが、一つのフィールドをに 同じ文字列が2つ以上あるレコードだけを抽出したいのですが、どうしたらよいでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#3です。 つまり、こんな仕様でいいのですね? 1)=================================== テーブルにあるフィールド名は少なくとも ・タレント名 ・性別 ・出演番組名 とする。 2)=================================== 1人のタレントが複数の番組に出演している場合は、その分のレコードで登録する。 (あるタレントが3つの番組に出演していたら、そのタレントのレコードが3行ある事になる。) 3)=================================== 登録されている全番組について、出演しているタレント名一覧が番組名単位でクエリで表示できるようにする。 上述の仕様でよいのであれば簡単でしょう。 クエリで出演番組名を昇順(あるいは降順)にソートして表示させればよいのでは? すると、出演番組名単位で並び替えされます(同じ番組名がまとまって表示されます)。 もし、仕様3)が、「ある番組を入力してその番組に出演しているタレント一覧を出力する」仕様であれば、クエリで出演番組名の"抽出条件"に=[番組名を指定してください。]と入力してください。 クエリを実行すると、"番組名を指定してください。"というポップアップ(パラメータ入力画面)が表示されます。そこで入力した文字列(番組名)に出演しているタレント一覧が出力されます。 ある程度Accessの操作(設定)方法を割愛して書きましたが、これで分かりましたか? (とその前に、これで回答になってます?ちと勘違いしているような気が・・・。)
その他の回答 (3)
- Musaffah
- ベストアンサー率36% (37/101)
質問内容だけではいまいちイメージが湧きません。 具体例を提示してもらえませんか?
>同じ文字列が… 文字列は何文字ですか? 1文字でもマッチすれば抽出するのでしょうか? 2文字マッチすれば抽出するのでしょうか? それとも?
- imogasi
- ベストアンサー率27% (4737/17069)
自信はないですが、 アクセスはレコード相互間の関係を、全体的に捉え、直接レコードごとに何かをするのは苦手なように思います。クエリ・SQLなどで。 同じ文字列がMDBレコード内で、「ある」か「ない」かは、全レコードを読み終わらないと判らないですね。 しかし読み終わったら、前のレコードに対し処理はできない。 全レコードをメモリに展開・ストックすれば別ですが。 --- そこで便法は レコードを1たん、問題の文字列のフィールドでソートする。 するとフィールド全体で同じかどうか(または先頭から比較して同じかどうか)を問題にするパターンでは、隣り合うレコードとなる。 その後ADOなど1レコードづつレコードを扱えるファイルアクセスメソッドで、初め2レコード、その後で1レコード読んで、直後(後)と同じかを見る。同じなら、先入れを先出しする。」 *語句*(*はワイルドカードを示す)式に、フロートした位置で同じものがある(「語句」は出てきたとこ勝負、決まってない場合)のも、見つけたいなら、 2文字列から、共通部分を割り出すアルゴリズムも必要で、さらに飛び離れたレコードも対象にするのは、メモリに全レコードストックする以外の方法では、難しいと思う。
補足
下記の問題の仕方がわからなくて質問をしました。 ~問題~ 「テーブルにタレント名、性別そのタレントが出演している番組名(タレント一人当たり1つ)などをが書かれてあって、クエリで、同一の番組に出場している人全員のデータを表示させなさい」 というものでした。 つまりクエリで、同一の番組に出てるのタレントを表示したいのですが、番組が何種類もあり、いろんな番組で、同じ番組に出場している人がいるので、どうしたら、一気にそれを表示させることができるのかが分からないんです。 これで質問を理解していただけましたでしょうか? 質問の仕方が悪くてすみませんでした。m><;m