• 締切済み

フォームから複数のデータを抽出

作業が進まず困っております。どうかお力をお貸し頂ければ幸いです。 数字のみが羅列されているものが2種類あります。(ID(1)・ID(2)とします) ID(1)は重複されていないデータです。 ID(2)は重複されているデータです。 テーブルに下記のように並んでいます。 ID(1)   ID(2) 123444  987654 123456  987654 123465  986431 このID(2)を元に、ID(1)のみが表示される新たなテーブルを作成します。 問題は、ID(1)の全データを新なテーブルに表示されるのではなく、ID(2)の中から1件~複数件抽出した状態で表示させる事です。 クエリで、1件のみならばテーブル作成が出来たのですが、仕事の内容としては不十分で使えません。(パラメータで入力出来る様にしました) ID(2)がそのつど何件出るか分からない為です。 自分だけが作業を行うならば、クエリでID(2)を入れれば問題ないのですが、 複数の人間がこのAccessを利用してID(1)のデータ抽出を行う予定です。 上司から、ID(2)を1件から複数件入力して、テーブルが作成出来るように作るように指示されています。 そこで、フォームを作成し、ID(2)を入れられるテキストボックスを複数作成し、 クエリにID(1)を表示させ、隣に下記の式をテキストボックスの数だけフィールドに入力しました。 式 IIf(IsNull([Forms]![フォーム 1]![ID(2)条件1]) , True,[ID(1)]=[Forms]![フォーム 1]![ID(2)条件1]) ※テキストボックスの数だけ「ID(2)条件」の最後の数字を増やしました。 しかし、表示されるのは1つのIDのみで、複数件表示させる事が出来ませんでした。 同じフィールドでは表示させる事は出来ないのでしょうか? 長くなってしまいましたが、宜しくお願い致します。

みんなの回答

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

ID2の抽出条件欄に In ([Forms]![フォーム 1]![ID(2)条件1],[Forms]![フォーム 1]![ID(2)条件2],・・・,[Forms]![フォーム 1]![ID(2)条件n]) 別件ですが括弧付きのフィールド名はトラブルの元ですよ

saiwai
質問者

お礼

ご回答ありがとうございました。 真ん中にIIfを付け足したらうまく動きました。

関連するQ&A

  • フォームからクエリの抽出条件を入力する方法

    既存のデータベースより複数のテーブルを結合し、必要なカラムだけを表示させるようなクエリを作成しました。 他の人でも操作ができるように、フォームを作成し、テキストボックスにて抽出条件を指定し、クエリやレポートを出力するような形にしたいと思っています。 このクエリの抽出条件をフォームより指定する方法で悩んでいます。 現在、作成したクエリの抽出条件の中に [Forms]![フォーム名]![テキストボックス名] と入力し、フォームのテキストボックスで抽出条件を記入してクエリを実行させているのですが、これでは複雑な条件 (Between~ や 条件1 or 条件2 等の指定) を入れると「直前の操作はキャンセルされました」とポップアップが出てしまい、思うとおりにうごきません。 フォーム内でこのような抽出条件範囲の指定ができるようにするにはどうしたらよろしいでしょうか? よろしくおねがいします。

  • 選択クエリでの複数抽出条件の記述について

    フォーム上に「テキストボックス」、「コンボボックス」、「チェックボックス」の項目があって、それぞれの条件に合致した、データを抽出する選択クエリを書いてるのですが、うまく抽出してくれません。 「テキストボックス」、「コンボボックス」には、[Forms]![テーブル名]![入力するボックスの名前] or 、[Forms]![テーブル名]![入力するボックスの名前] is nullと記述しています。 「チェックボックス」には、、[Forms]![テーブル名]![チェックボックスの名前] = True or [Forms]![テーブル名]![チェックボックスの名前] = Falseと記述しています。 しかしながら、任意のコンボボックスからテキストを選択し、チェックボックスにレのついたデータを抽出したくても正しいデータを表示してくれません。 どなたか、クエリに詳しい方よろしくお願いいたします。

  • ACCESSで複数条件でデータ抽出するフォームの作成

    ACCESS2000で複数の条件を入力し、該当するデータを抽出するフォームを作成しています。どんな方法がありますか?簡単に出来る方法をお教えください。 具体的には、売上明細データを検索します。あらかじめ テーブル:売上明細データ をいろいろなマスタを参照している クエリ:売上明細クエリ を元に抽出します 条件は売上日付の日付1と日付2の項目と、伝票区分の項目です。 フォームの頭にテキストボックスを3つ作成し、日付1~日付2までの売上日付で 入力された伝票区分のもののみを表示させたいのです。 検索というコンボボタンを配置し、クリック時にその下にクエリからの必要な表示項目を売上明細クエリから配置しています。 抽出する方法(条件の与え方)を教えてください。よろしくお願いいたします。

  • Access2003でコンボボックスからデータを抽出したい

    自己啓発でAccess2003を勉強しています。 Access2003でコンボボックスで名前を選択して、データ(住所)を抽出したものをリストボックスに表示させたいのですがどこがまちがっているかわかりません。こんなことで3週間ぐらい悩んでいます。 回答またはアドバイスをお願いします。 もしくはもっと簡単なやりかたがあればお願いします。 (1)「氏名」、「住所」のテーブルを作成。テーブル名は「01データ」 (2)「氏名」、「住所」のクエリを作成。クエリ名は「クエリ1」 (3)フォームでコンボボックスとリストを作成。フォーム名は「印刷」 ⇒コンボボックスの名前は「検索」。 ⇒値集合ソースはSELECT [01データ].ID, [01データ].氏名 FROM 01データ; これで「氏名」が選択できた。 (4)クエリの「氏名」抽出条件にLike [forms]![印刷]![検索] (5)検索するマクロを作成。マクロ名「M検索」 アクションは 全レコードの表示 フィルタの実行 ⇒Where条件は[Forms]![印刷]![検索]=[クエリ1]![氏名] (6)マクロ「M検索」をコンボボックスのプロパティ「イベント」タブから変更時に設定する。 (7)フォーム「印刷」を開き、コンボボックスで氏名を選択すると『クエリ1!氏名』と表示されてしまいます。 (8)フォーム「印刷」のリストボックスは全レコードが表示されている。

  • Access2003 検索用フォームでの検索がうまくいかない

    Access2003 検索用フォームでの検索がうまくいかない とある、テーブルを参照するフォームを作成。 そしてテキストbokを設けて、各項目毎にキーワードを指定してデータを抽出できるようにしたいのですが、 どうもうまくいきません。 検索は出来ているのですが、全部ひっかからないのです。 例えば ID という項目を検索するbox に"1"を入力して ID=1の全データを抽出しようとすると、一部検索にかかってこないものがある という具合です。 テーブルに入力されている数字や文字が本当に一致しているかどうかも調べましたが確かに一致しています。 実際、テーブルを開いて ctr+f で検索すると全てひっかかります。 何が原因なのでしょうか??? 私の作った手順は以下のとおりです。 テーブル作成(エクセルからインポート) ※空白の欄もあります フォーム新規作成でフォーム作成 フォーム上にテキストbox作成 クエリ作成 (Like "*" & [Forms]![フォーム名]![テキストbox名] & "*" ) マクロ作成⇒フィルタ実行/上の手順で作ったクエリを登録 マクロをフォーム上へドロップ およそこのような手順です。

  • フォームに表示したいんですが・・・

    複数の人数の作業時間を入力するフォームを作成しました。 誤って入力したものをフォーム上で訂正したいので非連結のテキストボックスを 2つ作成しクエリーの「作業日」と「社員番号」のフィールドの抽出条件をforms![フォーム名]![テキストボックス名]としました。 フォームの2つのテキストボックスに「日付」と「社員番号」を入力すると1レコードが表示されました。 間違いを探すのに1日1日入力するのは手間なので、例えばAさんの1年分の レコードから1月1日から1月31までの31レコードをフォームに表示させるにはどうすればよいのでしょうか? いろいろやってみたんですがうまく出来ませんでした。 うまく説明できませんがよろしくお願いいたします。

  • フォームのテキストボックスを抽出条件とするクエリー

    Access2003を使って、「フォームのテキストボックスを抽出条件とするクエリー」 を作成していて困っています。 まず Like [Forms]![顧客氏名検索]![テキスト2] とすると、完全一致したものだけが抽出できています。そこで 【値の一部が一致】 Like "文字列*"   ※文字列にある文字列を直接入力するとちゃんと抽出できる。 これを参考に Like "[Forms]![顧客氏名検索]![テキスト2]*" とすると、値の一部が一致するものが抽出されません。(何を入力しても該当0件) 抽出条件が正しく設定されてないように思います。 フォームのテキストボックスの値を利用する場合、""や*の使い方がおかしいのでしょうか?

  • Access2000で複数の検索項目を作りたいのですが・・・

    こんにちわ。 今、Accessで社員録を作成しているんですが、複数の検索について教えて下さい。 ■テーブル テーブル名:社員録 フィールド名:ID・検索名・氏名・所属ID・所属 ■クエリ クエリ名:社員録クエリ フィールド名:ID・検索名・氏名・所属ID・所属 検索名抽出条件:検索名フィールド: Like [Forms]![社員録 縦]![けんさく]         所属フィールド: Like [Forms]![社員録 縦]![抽出検索名] ■フォーム フォーム名:社員録フォーム:テキスト1・テキスト2・ボタン1       社員録サブフォーム:データソース:社員録クエリ テキスト1:所属を入力 テキスト2:検索名を入力 ボタン1:マクロの再クエリを実行する ■ここからが質問です■ (1)テキスト1又は、2が空白のとき社員録全体から検索かフィルタ。 (2)テキスト1・2が、入力されてる時、両条件から検索かフィルタ。 をしたいのですが、何かいい方法がありましたら教えて下さい。 説明が、長くなってしまってスミマセン。。。

  • 同一値集合ソースの複数コンボボックスでプルダウンメニューに既入力値を再表示させない

    まだ6ヶ月程度のAccess初心者です。データ入力上の誤入力を避けたいのですが方法がわからず悩んでいます。初心者で、未だ基本的な理解ができていないためだと思いますが、どなたか解決法をご教授いただければありがたく存じます。  1つのフォーム上に複数のコンボボックスを用意して、同じ値集合ソース(テーブル)を参照して入力をしようとしています。  このとき、まず、コンボボックス1に、参照しているテーブルから”DATA1”という値を入力したとき、次のコンボボックス2のプルダウンメニューには、先の”DATA1”を表示しないように、SQLステートメント:クエリビルダの抽出条件を設定しようと考えています。  このフォームにはコンボボックスを全部で4つ用意して、順次入力の都度、入力済みのデータはプルダウンメニューに表示しないようにし、重複を避けたいというのが目的です。    コンボボックス2の値集合ソースとして設定する際に、SQLステートメント:クエリビルダの抽出条件に記載したものは次のようなものです。 <>[Forms]![フォーム1]![コンボボックス1]  And  <> [Forms]![フォーム1]![コンボボックス3]  And  <>[Forms]![フォーム1]![コンボボックス4]  ほかのコンボボックス3~4にも、自分以外のコンボボックスと重複させないつもりで、それぞれ抽出条件を入力しました。  さて、実際にこれで動かしてみると、1回目はうまくいって喜んだのですが、入力値をDeleteして再入力を試みたところ、リストボックスが何も表示されない状態になり、悩んでいます。  何か設定上で不足している、あるいは論理上で考え違いをしているのだと思いますが、何とか解決したいと切に思っています。何卒よろしくお願いします。

  • access フォームで情報表示かつ、データ入力業務について

     accessのフォームでデータ入力業務の場合について。  作成者が退職しており、システムにどうしても理解できない所があり、ご教授願います。  現状、お客様の情報表示(社名、住所等)かつ、お客様に関する調査結果のデータ入力を1つのフォームで表示させています。サブフォームは使用しておりません。  疑問点は、IDをテキストボックスに手入力し、エンターキーを押すと、お客様情報が表示されるという仕組みです。検索ボタン等はありません。それらしき記述もありません。 テーブル1・・・ID、お客様情報  テーブル2・・・ID、調査結果 テーブル3・・・上記全情報の保存用テーブル 選択クエリ・・・テーブル1+テーブル2(IDで結合)(IDは、テーブル2のものを使用) フォーム・・・クエリを基にしたもの。 ・テーブル1は完全にユニークなデータです。 ・テーブル2は調査結果の保存テーブルではなく、「サブフォームを使う事無く、既知の情報表示とデータ入力を1つのフォームで表示できる」ようにする為の、言わば「ダミー」のようなテーブルと思われます。テーブル2に事前に情報入力はしません(フォームで入力する事になります)。またテーブル2を後々参照する事もありません。 ・テーブル3は最終的な保存先です。フォームにはその為の保存ボタンがあります。その際にはADOを使っているようです。(ここらへんは今の私の知識の限界です。)  例えば新規IDをテーブル1に作成します。テーブル1にはデータはありますが、テーブル2にはまだ存在しない状態です。この時点で、その新規IDを抽出条件に、このクエリを実行すると、1行だけ抽出されます。普通に考えれば「抽出結果は0件」ではないかと思うのですが・・・。  新たにシステムを構築する為、この仕組みがどうしても必要なのです。  お願いします。

専門家に質問してみよう