• ベストアンサー

アクセス2000でデータ抽出できない

アクセス2000でデータ抽出できない サブフォーム上でコンボリストを使用して入力し、その条件にあったものだけを別のコンボボックスに表示したい。 フォーム:[取引名][種別][資材名] ※全てコンボリスト 取引先を選択し、種別を選択し、その2つの条件を満たすものだけテーブルから抽出し、資材名のリストに表示したいのですが、どうしたらできるかわかりません。

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.5

訂正です。 >Private Sub 取引名_AfterUpdate() >Me!資材名.Requery >End Sub >Private Sub 種別_AfterUpdate() >Me!資材名.Requery >End Sub となっていましたが、 Private Sub 取引名_AfterUpdate() Me!cmb資材名.Requery End Sub Private Sub 種別_AfterUpdate() Me!cmb資材名.Requery End Sub です。cmbが抜けていました。

tleasure
質問者

お礼

早い返答ありがとうございました まだ、アクセス初心者なので、参考にしてやってみます ありがとうございました

その他の回答 (4)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.4

再提出です。 メインフォーム:フォーム1 サブフォームを埋め込むコントロール名:フォーム2 各コンボの名前を、 cmb取引名、cmb種別、cmb資材名 とします。 各コンボボックスのソースがわからないので暫定で テーブル1に各フィールドがあるものとします。 なお、テーブル1はサブフォームのレコードソース とは違うものとします。 cmb資材名の値集合ソースを、 SELECT テーブル1.資材名 FROM 資材テーブル WHERE (((テーブル1.取引名)=[Forms]![フォーム1]![フォーム2].[Form].[cmb取引名]) AND ((テーブル1.種別)=[Forms]![フォーム1]![フォーム2].[Form].[cmb種別])); とします。 ここで、フォーム2はサブフォームそのもではなく、 サブフォームを埋め込むコントロール名です。 メインフォームにサブフォームを設定するとき におくコントロールを指します。サブフォーム名 と同じにプロパティで設定していてもいいです。 サブフォームのcmb取引名、cmb種別の更新後処理に以下を設定します。 Private Sub 取引名_AfterUpdate() Me!資材名.Requery End Sub Private Sub 種別_AfterUpdate() Me!資材名.Requery End Sub 一つの案です。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

勘違いしていました。 >サブフォーム上でコンボリストを使用 メインフォームと思っていました。 #2はスルーしてください。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

各コンボの名前を、 cmb取引名、cmb種別、cmb資材名 とします。 資材テーブルに資材名のフィールドがあるとします。 cmb資材名の値集合ソースを、 SELECT 資材テーブル.資材名 FROM テーブル1 WHERE (((テーブル1.取引名)=[Forms]![フォーム1]![cmb取引名]) AND ((テーブル1.種別)=[Forms]![フォーム1]![cmb種別])); とします。 cmb取引名、cmb種別の更新後処理に以下を設定します。 Private Sub cmb取引名_AfterUpdate() Forms!フォーム1!cmb資材名 = "" Forms!フォーム1!cmb資材名.Requery End Sub Private Sub cmb種別_AfterUpdate() Forms!フォーム1!cmb資材名 = "" Forms!フォーム1!cmb資材名.Requery End Sub で、どうでしょうか?

  • Hardking
  • ベストアンサー率45% (73/160)
回答No.1

対応策の一つとして下記します。 [取引名][種別]コンボボックスのいずれか選択変更 が発生した際に、該当テーブルをWHERE句指定でSELECT文で検索する。 [取引名]_Change() { SELECT 資材名 FROM テーブル名 WHERE 取引名 = [取引名]コンボボックスの選択肢 AND 種別 = [種別]コンボボックスの選択肢 [資材名]コンボボックス.RowSource = 資材名 } [種別]_Change() { SELECT 資材名 FROM テーブル名 WHERE 取引名 = [取引名]コンボボックスの選択肢 AND 種別 = [種別]コンボボックスの選択肢 [資材名]コンボボックス.RowSource = 資材名 }

関連するQ&A

  • 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)フォーム「印刷」のリストボックスは全レコードが表示されている。

  • データシート(サブフォーム)の複数条件抽出について。

    データシート(サブフォーム)の複数条件抽出について。 現在メインフォーム上に、オートフォーム:データシート(基となるテーブル(マスターA)選択) をサブフォームとして置き、メインフォーム上にコンボボックス2個(コンボ1、コンボ2)&コマンドボタン1個設置してあります。 基テーブル(マスターA)には 種類    サイズ    商品名 の3フィールドがあります。 やりたい事は、コンボ1(対応フィールド:種類)及びコンボ2(対応フィールド:サイズ)で選択し コマンドボタンを押下で、サブフォーム内データの抽出です。 まだACCESSを始めたばかりの未熟者のため、ネットや本で調べながらやっているのですが どうしても上記がわからなくて完全に進行ストップしてしまったので ご教授願いたいと思い質問させて頂きました。 Filterをかけ、条件はANDで繋げば良いとは思うのですが どのようにコードを組み上げれば良いのか調べつかないため 何卒ご教授の程宜しくお願い致します。 また、質問させて頂いている間も引き続き自分で調べながら やっていこうと思います。

  • ACCESS コンボボックスで選択した項目の内容をクエリで抽出

    今フォームの中にサブフォーム(クエリ)を入れようと思っているのですが、なかなかできません。 ・フォームを開く ・フォームのコンボボックスでテーブルの内容を選択 ・その内容をクエリで検索し抽出 ・そのクエリをサブフォームに表示

  • コンボボックスからのデータ抽出

    Access2000です。 hozon - テーブル コンボボックス-nenn(2003,2004) コンボボックス-tsuki(1月から12月) コンボボックス-hi(1日~31日) コマンドボタン-抽出ボタン があり、各コンボボックスで抽出したい年月日を選択してコマンド抽出ボタンをクリックして その下にサブフォームにてテーブルから抽出したデータを表示したいのですが、どのようなコードになるのか教えてくださいませんか? データは月別の場合と日にちべつの場合とできればうれしいのですが、、 初心者なのでよろしくお願いします。

  • Access コンボボックスを使って抽出

    Access2000・Windows2000を使用しています。 レコードの抽出をしたいと思います。テーブルは1つ、フィールドには日付・商品名・業者名・単価・・・とあります。フォームで「商品名から抽出(コンボボックスから商品を1つ選ぶ)」または「業者名から抽出(コンボボックスから業者を1つ選ぶ)」(コンボボックスから商品を1つ選ぶ)出来るようにし、なおかつ今月のレコードのみ表示させたいのですが、まずそのテーブルを1つ作成した時点でつまづいてしまっています。 どなたかご教授お願いします。

  • ACCESSのクエリの抽出

    ACCESS2003を使っています。フォームのコンボボックスに入っているデータを見てクエリで抽出したいと思っています。 フォームのコンボボックスにデータが入っているときは、そのデータで抽出を行い、nullのときは抽出をやめてすべてのデータを表示させたいです。 抽出項目には、null値はありません。 クエリの抽出欄に下記の式を入れましたがうまくいきません。 IIf(IsNull([Forms]![フォーム名]![コンボボックス名])=true , Is Not Null , [Forms]![フォーム名]![コンボボックス名]) コンボボックスにデータが入っている場合は、抽出はうまくいくのですが、nullのときは、何も表示されません。 どこか式が違っているのでしょうか? よろしくお願いします。

  • アクセスでデーター抽出方法を教えて

    アクセスで、クエリー&サブフォームを使わず、テーブルのデータをフォーム上で抽出したいです。教えて下さい。(例)テーブル1:商品名A 商品番号2・・・・・、フォーム上で商品番号2と入力したら商品名Aだけを表示したい。

  • Accessのコンボボックスの表示について

    今 Access2000で作っているのですが、 フォームにサブフォームを帳票フォームの中に 二つコンボボックスがあります。 そしてコンボボックス1を選ぶと 2のボックスに抽出されたリストが表示されて その中から選ぶ形になっているのですが、 サブフォームに2件目を入力すると1件目の ボックス2の中の表示が消えてしまいます。 そして1件目のボックス2にカーソルを置くと表示 されるのですが、次は2件目のボックス2が消えてしまいます。データ的には問題ないようなのですが、 なぜ、消えてしまうのでしょうか? 1、2とは別にコンボボックスが3つあります。 表示するものが多すぎるのでしょうか? よろしくお願いします。

  • コンボボックスでのサブフォーム抽出について

    コンボボックスでのサブフォーム抽出について教えて下さい。 T_支払というテーブルにてSUBフォームを作り、メインフォームに貼り付けてます。 コンボボックスにて月度を選択すると、その月の一覧がSUBフォームに表示する様にしたい のですが、今一わかりません。 途中までフォームの形はできたのですが、そこから止まってしまっています。 この先何をすればよいのか教えていただけないでしょうか? ほぼ初心者なものでよろしくお願いします

  • Access2000のクエリー抽出条件

    Access2000で、「メインフォーム」の中に「サブフォーム」を作り、「メインフォーム」上の複数のテキストボックス(非連結)の条件により「サブフォーム」内のデータシート形式の「一覧表」にフィルタをかけて表示させたい。 「サブフォーム」のコントロールソースである「選択クエリー」の抽出条件に「メインフォーム」上のテキストボックスの内容を記入してできるかと試みていますが・・・。意図としては条件が複数になると、その分だけ絞り込んだ表示結果を得たいのですが、うまくいきません。 どなたか、教えていただけないでしょうか?