• 締切済み

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

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

みんなの回答

  • okgoo3
  • ベストアンサー率74% (20/27)
回答No.3

[T_支払] というテーブルをレコードソースにしたフォーム [F_支払] がある。 レコードソースが空白で非連結状態になっているフォーム [F_MAIN] がある。 [F_MAIN] にサブフォーム コントロール [SF1] を貼り付ける。 サブフォーム コントロール [SF1] のソース オブジェクトに [F_支払] を設定している。 [F_MAIN] にコンボボックス [Comb1] がある。 つまり [F_MAIN] 上にある [Comb1] で値を選択すると、[F_MAIN] の内容と親子関係にないサブフォーム内のレコードのフィルター処理をしたい、と。 親フォームとサブフォームがプロパティ レベルでリンクしていない状態で親フォーム上のコンボボックスでの変化をサブフォームに伝える場合は、そういう処理を VBA にさせないといけない。 サブフォームとして呼び出されているフォーム [F_支払]側のフィルター プロパティは [月度]=Forms![F_MAIN]![Comb1] としておく。 次に Comb1 の値が変化した際に [F_支払] のレコードを再読み込みする処理が必要なので VBA に頼る。 [F_MAIN] にある Comb1 コントロールの AfterUpdate イベントを使用する。 Private Sub Comb1_AfterUpdate()  Me.SF1.Requery End Sub [F_MAIN] 上のコンボボックス [Comb1] の値が変化すると Comb1_AfterUpdate イベントが発生し、[F_MAIN] 上のサブフォーム コントロール [SF1] を再読み込みさせる。 [SF1] によって再読み込みされた [F_支払] は、フィルター プロパティの内容にしたがって [F_MAIN] 上の [Cmb1] の値を使ってフィルターリングする。 文章で書くと面倒くさい。

回答No.2

すみません書き間違えました。UserFormではないのですね?

回答No.1

subForm1の中のコンボボックスとテキストボックス若しくはラベルを使用してではなく、SubFormそのものに表示ですか?

yama0202
質問者

補足

サブフォームそのものに表示させたいです

関連するQ&A

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

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

  • access2007 コンボボックスの二重検索

    メインフォームにコンボボックスにて担当者を選択できる 様配置しています。 このコンボボックスはサブフォームに展開される受注残 テーブルにある担当者コードと連結しています。 この状態で担当者選択後、サブフォーム上に担当者別 受注残一覧を表示する事は可能です。 ここでさらにその受注残を商材別に抽出したいと思って います。 これもコンボボックスでの選択設定を行いたいのですが リンク設定はすでにメインフォーム上に設定している コンボボックスを親と設定しているので、新たに作成する コンボボックスをどの様に設定して良いのかがわかりません。 考え方が間違っているのかもしれませんが この様な複数コンボボックスで選択枝を絞ってゆく方法は 色々な画面で使用されていますのでできるかとは思いますが その設定方法がよく分かりません。 複数コンボボックスで作成したご経験のある方が いらっしゃいましたらぜひご指導下さい。 よろしくお願いいたします。

  • サブフォームでのテキストとコンボ連動について

    ACCESS2002でDBを構築している初心者です。 メインフォームに2つのサブフォーム(サブ1、サブ2)埋め込みを サブフォーム同士を連動させたフォームを作成中です。 2つのサブフォームのうちのサブ1にテキストボックスを基に コンボボックスでSQLを実行して抽出結果を コンボボックスに表示させています。 下記でaの値が変更されるとbにその値を送っています。 Private Sub a_AfterUpdate() DoCmd.Requery "b" Me!a.Requery End Sub その後bの値集合ソースでSQLを実行しております。 SQLの抽出条件「forms!サブ1!a」として、上記で取得した テキストボックスaを使用しております。 サブ1をメインフォームで開き上記を実行すると値を抽出します。 しかしサブフォームで実行した際に、「パラメータの入力」が 出てきて手動で入力しなくてはいけません。 サブフォーム上で実行する際に、イベントプロシージャや SQLの抽出条件を更新しなくてはならないのでしょうか。 お手数おかけいたしますが、ご教授よろしくお願いいたします。

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

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

  • サブフォーム帳票形式上での2つのコンボボックスの連携

    サブフォーム帳票形式上での2つのコンボボックスの連携 テーブルとして以下4つ tbl01_受注   受注ID(主キー) 受注日      名前 電話番号 tbl02_明細   明細ID 受注ID(tbl01_受注IDとリレーション)   カテゴリ   商品名  tbl03_カテゴリ   カテゴリID カテゴリ tbl04_商品名   商品ID カテゴリID 商品名   フォームとして以下メインとサブで構成   f01_受注フォーム(メインフォーム)   レコードソース→tbl01_受注     f02_明細フォーム(サブフォーム)    レコードソース→tbl02_明細 添付画像のように 1件ごとの受注につき受注フォームが増えていきます 1件の受注にたいしてサブフォームに商品を入力して行きます、  商品名が多数ありますので コンボ1でtbl03のカテゴリを選び tbl04からそのカテゴリIDとマッチした商品名を抽出して コンボ2に表示したいと考えています。 色々参考にしましたがどれもうまく行かない状況です。 たとえばコンボボックスに反映されず空白になったり コンボボックスの内容を変更すると全ての行の値が 同じになった なかなかうまく行きません。 サブフォームでコンボボックス1でカテゴリ選択すると コンボボックス2にカテゴリで絞り込んだ内容が選択できるように したいのです。 そして次の行も同じように商品を入力したいのです。 どなたか助けて下さい、お願いします。

  • access2007でのサブフォームへの入力

    仕入入力画面なんですが メインフォーム(仕入伝票テーブル)サブフォーム(仕入伝票明細テーブル) という構成です。 メインフォームで 仕入先をコンボボックスで指定すると サブフォームの 商品を入力するコンボボックスに メインフォームで選択した仕入先で購入できる商品が選べるように したいのですが、どうすればよろしいでしょうか? メインフォームの仕入先コンボボックスを選択する度に サブフォームの商品コンボボックスで選択できる内容を反映させたい です。 仕入先A : 商品1 商品2 仕入先B : 商品3 商品4 商品5 仕入先C : 商品6 商品7 商品8 商品9 メインフォームで仕入先コンボボックスで仕入先Aを選択すると サブフォームで選択できる商品コンボボックスは商品1と商品2 メインフォームで仕入先コンボボックスで仕入先Bを選択すると サブフォームで選択できる商品コンボボックスは商品3と商品4と商品5 というようなイメージで作りたいです。 どうかよろしくお願いします。

  • Access97:サブフォームを切り替え表示したい

    アクセスで仕事で用いられる専門用語の和英辞書データベースを作っております。 その辞書は用語の持つ意味や使われ方などから分類をしています。 分類一覧テーブルは分類ID,分類からなり、用語一覧テーブルは用語IDと用語からなります。 これらをつなぐのが和英辞書テーブルで、辞書ID,分類ID,用語IDからなり、 分類ID,用語IDはそれぞれ分類一覧テーブル,用語一覧テーブルのそれとリレーションシップを 組んでいます。 メインフォーム(既定のビュー=単票フォーム)には分類フィールドを作り、コンボボックスにします。 分類を選択したときまたはその横に「表示」ボタンを設置しておいてそのボタンをクリックしたときに 選択された分類に属する用語一覧がサブフォーム(既定のビュー=帳票フォーム)にリロードされてるように切り替えて表示させたいと考えています。 メインフォーム元:分類一覧テーブル,サブフォーム元:用語一覧テーブルにしたフォームは作成できました。 メインフォームのレコードを切りかえるとサブフォームも切り替わりますが、 コンボボックスの選択でサブフォームを切りかえ(たように見せ)る上記のようなフォームに このフォームから編集することはできるでしょうか? 無理なら新規にフォームを作りなおすとしてできるでしょうか? 自分の発想で2通りやってみましたが、いずれも失敗でした。 (詳しく書いたら文字数が800を超えたので省略します) テーブルの構成やリレーションを多少変えてもいいしフォームのレコードソースにクエリービルダを使ったりVBを組んでもいいので、メインフォームのコンボボックスの選択値によってサブフォームの表示を切り替える方法について教えて下さい。

  • 【Access】サブフォームのコンボボックス連携

    ACCESSで社員の資格情報を入力するシステムを作成したのですが 以下の問題を解決できず困っています。 どうすればいいか お力を貸して頂けないでしょうか? ■問題:メインフォームで別レコードに移動した際 サブフォーム内の連携コンボボックスを更新されない □コンボボックス2の表示項目 1.分類別No 2.資格名ID 3.資格名 3のみを表示していますが、 1つ目のコンボボックス1の数値で 全コンボボックス2の資格名が出てしまいます。 ■フォーム構成 メインフォーム内に以下を設置 1.移動ボタン 2.帳簿サブフォーム □サブフォーム構成 レコード1 コンボボックス1 コンボボックス2 レコード2 コンボボックス1 コンボボックス2 ~~ 最終レコード コンボボックス1 コンボボックス2 ■コントロールソース コンボボックス1:大分類ID コンボボックス2:資格名ID ■テーブル構成 資格名  資格名ID(主キー)  大分類ID  分類別ナンバー(大分類ごとの登録順ナンバー)  資格名   資格大分類  大分類ID(主キー  大分類名 (IT系・運転系など) ■コンボボックス2の値集合ソース(表示項目:資格名) SELECT 資格名.資格名, 資格名.分類別No, 資格名.資格名ID FROM 資格大分類 INNER JOIN 資格名 ON 資格大分類.資格大分類ID = 資格名.資格大分類ID WHERE (((資格名.資格大分類ID)=[Forms]![メインフォーム]![サブフォーム]![コンボボックス1])) ORDER BY 資格名.分類別No; ------------------------------------ サブフォームに記載し効果のなかったVBAコード ’再クエリ Private Sub Form_Current() Dim cntrl As Control If Not IsNull(Me![コンボボックス1]) Then For Each cntrl In Form.Controls If cntrl.ControlType = acComboBox Then cntrl.Requery End If Next cntrl End If End Sub ’ソース更新 Private Sub Form_Current() With Forms!メインフォーム名!サブフォーム名!コンボボックス2 .RowSource = .RowSource End With End Sub ■参考サイト 'サブフォーム内での2つのコンボボックスの連動について 'http://goo.gl/nfvxW '~ '>   コンボボックスAの更新後処理イベントに '> Me!コンボボックスB.Requery '> 'Me.コンボボックスB.RowSource = Me.コンボボックスB.RowSource '数値でコンボボックス選択 'http://goo.gl/ovZ3C 'リストボックスの行を選択するときは、「Selected(n)」を使います 'http://goo.gl/RbsWX 'サブフォームの指定 ' =Forms!フォーム名!サブフォームコントロール名.Form.テキストボックス名 'http://goo.gl/vKxtj

  • access2007 サブフォームのエクスポート

    担当営業・売上月度別のデータを抽出用フォームを作成しました。 メインフォームでは担当を選択するためのコンボボックスと 売上月度を選択するためのコンボボックスを配置しています。 サブフォームはメインフォームで選択された条件の明細が 表示される設定となっています。 このサブフォームに表示された内容をエクセルにエクスポート させたいのですが、メインフォームにボタンを配置しても メインフォームの担当と売上月度の日付のみが エクスポートされるだけでサブフォームの内容がなに一つ エクスポートされません。 担当・。売上月度で抽出されたサブフォームの内容を エクスポートするにはどうすれば良いでしょうか? ご指導の程、宜しくお願い致します。

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

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

専門家に質問してみよう