- ベストアンサー
単票フォームと帳票フォームを連動する方法
- 単票フォームと帳票フォームを連動させるための構成方法を教えてください。
- 元データはT_testのみで、T_testを元に単票フォームと帳票フォームを作成します。これらのフォームをサブフォームに組み込み、1つの親フォームに配置します。
- 帳票フォームのレコードをクリックするたびに、単票フォームに帳票フォームのデータを表示させたい場合、帳票フォームの値を取得して単票フォームにフィルタをかける方法が有効です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No2 さんの方法を VBA を使用しないで実現。 hatena さんのを拝借して 帳票フォームの埋め込んであるサブフォームコントロール名を、SubForm1 単票フォームの埋め込んであるサブフォームコントロール名を、SubForm2 とします。 「T_test」の中に、オートナンバ「an」フィールドがあると仮定します。 オートナンバでなくてもレコードを一意に決定できるフィールドなら OKです。 細工1) メインに不可視のテキストボックス「txt1」を配置します。 txt1 のコントロールソースを =[subform1].[Form].[an] 細工2) SubForm2 の リンク親/子フィールドを設定します。 (直接の手入力で:ビルドは使いません(この状況では使えません)) ・リンク親フィールド : txt1 ・リンク子フィールド : an
その他の回答 (3)
- 30246kiku
- ベストアンサー率73% (370/504)
#2です 表示するだけなら #2の方法も使えるかと思いますが、 双方で入力/更新して・・・それを他方に反映・・・・ このような動きがあるのであれば、hatena さんの方法が良いかと・・・・
お礼
ありがとうございました。
- 30246kiku
- ベストアンサー率73% (370/504)
違う方法を・・・・ということで、 帳票の方をクリックしたら、単票の方が切り替わる・・・で良いですよね。 「T_test」の中に、オートナンバ「an」フィールドがあると仮定します。 細工1) メインに不可視のテキストボックス「txt1」を配置します。 細工2) 帳票側のレコード移動時に「txt1」に「an」を設定します。 Private Sub Form_Current() Me.Parent.txt1 = Me.an End Sub 細工3) 単票側のサブフォームコントロールのリンク親/子フィールドを設定します。 (直接の手入力で:ビルドは使いません(この状況では使えません)) ・リンク親フィールド : txt1 ・リンク子フィールド : an 上記細工で、帳票側のレコード移動すると、単票側が連動する様になります。 (単票側のレコードソースでは、条件(WHERE)指定はしません) (単票側の表示はチョッと遅れて・・・・の表示になりますけど) ソコソコ動くと思いますが、使えるかどうかは判断してください。
お礼
ありがとうございました。
- hatena1989
- ベストアンサー率87% (378/433)
帳票フォームの埋め込んであるサブフォームコントロール名を、SubForm1 単票フォームの埋め込んであるサブフォームコントロール名を、SubForm2 とします。 帳票フォームのレコードソースは、T_Test、テキストボックスのコントロールソースにはフィールド名を設定しておきます。 単票フォームも同様にします。 メインフォームの開くときのイベントプロシージャを下記のように設定します。 Private Sub Form_Open(Cancel As Integer) Set Me.SubForm2.Form.Recordset = Me.SubForm1.Form.Recordset End Sub これで2つのサブフォームは完全に同期します。 帳票フォームでレコード移動すると、単票フォームのカレントレコードも同じになります。 逆に、単票フォームでレコード移動しても帳票フォームのカレントが同じになります。
お礼
ありがとうございました。
お礼
ありがとうございました。