• ベストアンサー
  • 困ってます

accessでコンボボックスとサブフォームでデータ表示したい。

accessのフォームでデータ検索表示したいのですが? データ表示の検索フォームを作成しようとしています。 まず検索したいテーブルの検索KEYにしたいフィールドを クエリを使い集計し、その結果をコンボボックスで表示して コンボボックスで指定すると、同一フォーム内にサブフォーム もしくはリストボックスで検索結果を表示したいのですが パラメータのわたしかた等が、よくわかりません。 方法を教えていただけないでしょうか? 参考になるサンプル等があれば助かります。 よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数5548
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.1

> パラメータのわたしかた等が、よくわかりません。 > 方法を教えていただけないでしょうか? クエリの検索条件欄に、フォームのコントロールを参照する式を設定すれば Okです。 (このクエリを、フォームのレコードソースに指定します:  ご質問に添付されたフォーム構成の場合は、サブフォームのレコードソース) 例えば、「フォーム2」フォームの「検索KEY」コンボボックスで指定された 文字列で検索する場合は、   Forms!フォーム2!検索KEY という式になります。 なお、コンボボックスでの指定と同時にフォームに反映するには、コンボボックス の更新後イベントに、マクロなら「再クエリ」アクションを、VBAならRequeryを、 当該フォーム(またはサブフォーム)に対して行う必要があります。 【VBA】 Private Sub 検索KEY_AfterUpdate()   (サブフォーム名).Requery End Sub 【マクロ】 アクション: 再クエリ <引数>  コントロール名: (サブフォーム名) ※いずれの場合も、「(サブフォーム名)」には、実際のサブフォームの名前を   指定。(「( )」は不要) ※サブフォームではなくフォーム自身の場合は、VBAなら「Me.Requery」に、   マクロならコントロール名は空白に、それぞれ変更。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 ご説明の通りに設定したところ 作成したいフォームがバッチリ出来ました。 わかりやすく説明いただき ありがとうございました。

その他の回答 (1)

  • 回答No.2

以下を試しにやってみてください。 上のコンボボックスの連結列が分類そのものだと仮定します。 また、表示したいのが提示された図の様にサブフォームであると仮定します。 メインのフォームをデザインビューで開き、 サブフォームコントロールをクリックし、プロパティを表示させます。 プロパティの中に、リンク親フィールド/リンク子フィールド 欄があると思います。 直接手入力で、 リンク親フィールドに、コンボボックス名 リンク子フィールドに、分類 を指定します。 サブフォームのレコードソースには、分類で絞り込んでいないものを指定しておきます。 コンボボックスで選択するとサブフォームの表示が切り替わります。 切り替わる速度が遅いようなら、コンボボックスのクリック時にでも、 Private Sub コンボボックス_Click()   Me.サブフォームコントロール名.Form.Recalc End Sub でも記述してみてください。 ※ コンボボックス名、サブフォームコントロール名のところは、実情に合わせて変更してください。 ※ サブフォームコントロール名は、リンク親/子フィールドを設定した時に表示されている名前になります。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 早速、試したところバッチリ出来ました。 わかりやすく説明いただき ありがとうございました。

関連するQ&A

  • Accessのコンボボックスに連動して、サブフォームを表示させたい。そ

    Accessのコンボボックスに連動して、サブフォームを表示させたい。そして、そのサブフォームに新しいデータを追加したい。 コンボボックスに連動さして、サブフォームを表示させるやり方は、検索して見つける事ができました。 そのページはこちらです。 http://www.nurs.or.jp/~ppoy/access/access/acF028.html しかし、データをサブフォームに追加しようと思うと上記リンク先のやり方では出来ませんでした。 何か方法はないでしょうか?

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

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

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

  • ACCESSのサブフォームについて

    ACCESS-2000を使用しております。 リレーションシップを作成し、抽出されたデータをリストボックスに 表示されるようにしました。 そのリストボックスを他のフォームにサブフォームとして挿入し、 メインフォームとリンクをさせたいのですがこれは可能なのでしょうか? リストボックスに表示されるデータの元になっている2つのテーブルと、 リンクを張りたいメインフォームのデータテーブル(1つ)間にリレー ションシップを作成すればよいのでしょうか。 よろしくお願いいたします。

  • Accessでのサブフォーム内の再クエリについて

    Access上で新しいデータベースを作成中なのですが、サブフォーム内の再クエリが上手くできません。 2つのコンボボックスを連動させた物がサブフォーム内にあるのですが、この2つを連動させる為にどうしてもサブフォームでの再クエリが必要となります。 そして、その再クエリのマクロでのコントロール名がわかりません。 最初のコンボボックスを[果物]次のコンボボックスを[りんご]と仮定すると、 [果物]→再クエリ→[りんご]のような形になる為、コントロール名は[りんご]になるはずなのですが、サブフォーム内の[りんご]の為、なんと表現していいのかわかりません。その結果、上手く再クエリが働いてくれません。 コントロール名はなんと書けばよろしいのでしょうか? (何も書かなくても再クエリされないです…) Access初心者なのでわかりやすく言っていただければと思います。 長い質問になってしまいましたがよろしくお願いいたします。

  • accessでサブフォームへクエリのデータを表示したいのですが、

    accessでサブフォームへクエリのデータを表示したいのですが、 すべてのデータが表示されず、飛び飛びに表示されてしまいます。 とくにフィルタなどはかけていないのですが、どうしてこのようなことになるのでしょうか?

  • アクセスのサブフォームでのトラブル

    サブフォームにコンボボックスがあります。値集合ソースにクエリを指定しており、クエリの抽出条件でメインフォームのリストボックスの値を参照しています。 ところがなぜか、メインフォームのリストボックスを変更しても、それがサブフォームのコンボボックスに反映されません。どういうわけか、変更する前の値が反映されてしまいます。 ところがデータベースウィンドウからそのサブフォームを開くと、同じコンボボックスにメインフォームの変更がちゃんと反映されています。 メインフォームのリストボックスの更新後処理イベントでサブフォームのコンボボックスのリクエリを実行しています。 原因が分からず困っています。よろしくお願いします。

  • ACCESS97のコンボボックスについて

    入社して、名刺を貰う機会が多い為、名刺を管理するものを初歩的な参考書を見てACCESS97で作りたいと思います。テーブルで数名の氏名・会社名・部署名・役職・住所を作りました。良く分からなかったので、この1つのテーブルを基にパラメータを使って検索する「検索用画面」と新しいレコードが表示される「新規入力画面」をクエリーとフォームを別々に作りました。検索用画面は、これで良しとします。しかし、新規入力画面は、同会社名が多いので、コンボボックスを作り今まで登録したものからも選べる様にもしたいです。新しいレコードでは、表示されませんが、▼で前のレコード(既に入力してあるデータ)に戻ると、エラーメッセージで「このフィールドに入力した値が不正です。例えば、数値型のフィールドに文字列を入力しました。」と出てきてしまいます。コンボボックスいうのは、コンボボックスウィザードで「テーブルまたはクエリーを表示する」を選び、表示させたいものを選ぶだけでは、いけないのでしょうか・・。くだらない質問で申し訳ありませんが、回答の方宜しくお願いします。

  • accessサブフォームでのパラメータ

    皆様いつも的確なアドバイスありがとうございます。 Access2002について質問させて下さい。 パラメータクエリを作りました。 そのクエリをサブフォームに埋め込み、ボタンを押すと、クエリが組み込まれたフォームが立ち上がるという仕組みを作りました。 クエリ単体で動かすときちんとパラメータが現れ、製造記号を入力すると、それに該当する製造番号の商品が現れます。パラメータは次のとおりです。 Like [製造番号検索] & "*" クエリでは不都合は無いのですが、 そのクエリをサブフォームに埋め込んだフォームを開こうとすると、同じパラメータが2度現れてしまいます。 サブフォームに関する特性があるのでしょうか? もしくは、パラメータの設定が悪いのでしょうか? 今はフィルタで無事動いているのですが、どうして出来ないのかが知りたいのです。 ご指南宜しくお願いします。 haru

  • ACCESS サブフォームでのエラー

    教えて下さい。 MENU画面(F_MENU)で、本日の年月を入力し、 MENU画面上の前年同月フィールドに、「200704」と表示させています。 その後、別フォーム(F_TOP)を開きコンボボックスで選択した条件で、サブフォーム(F_明細)を絞り込んでいます。 そのサブフォームには、非連結フィールドをつくり コントロール名には、以下を設定しています。 =[Forms]![F_検索_TOP]!F_検索_明細.Form!Controls([Forms]![F_MENU]![前年同月]) そして、F_TOPを開き、コンボボックスで選択すると、 絞り込まれたデータの1件目にのみ、検索結果が表示されます。 (後は、#Error) コンボボックスでどの検索条件にしても、最初の1件目のみ 表示されます。 サブフォームの元になっているデータには、 200704、200705、と年月別に実績が蓄積されており、 F_TOPで入力した日付から前年のフィールドを表示させる  ということが希望です。 なんだか、わかりずらい説明ですが、 このような現象を回避できる方法はありませんか?