メイン用テーブル、サブ用テーブルを基としたメイン/サブフォームがあります。メインIDでリレーションさせておりサブにはオートナンバーのサブIDもあります。サブフォームのフィールド(F)にはいくつかの項目がありF1・F2項目はコンボボックスでの選択となっています。F1・F2は選択必須となっており入力順はF2からでも可能です。
こんな事は可能?と思っているのは下記です。
メインに入力しサブの1行目を入力後にサブの次のレコード(2行目)に移り入力の際、1行目のF1・F2が特定の選択組み合わせので2行目のF2が特定の選択の場合、F1は1行目のF1と同じものを選択をさせたい。(MsgBoxを表示させでYesなら所定の選択を実行)。
例えばサブの1行目が F1:車-F2:電車 が特定の組み合わせで2行目のF2が”徒歩”の場合F1には”車”を選択させたい (下記の★は車の選択をさせたい) *説明と例えが下手ですみません。
[F1〕 [F2]
車 電車
★ 徒歩
メッセージ出してYesなら代入させる事は分かるのですが、同一メインID内でのサブの先頭レコード内容を条件とするコードが分かりません(この条件下で2行目のF2も条件にプラスされる)。
いいアイデアがあればよろしくお願いします。
1行目(先頭レコード)の値は、フォームヘッダーにテキストボックスを配置して、コントロールソースを
=First([F1])
などとすれば取得できます(必要ないなら非表示にしておく)。代入するときにこのテキストボックスを参照すればいいでしょう。ただし、質問内容から判断するに、ご希望のことは1行目といういうより前レコードの値を取得したいということでは。
その場合は下記をご参考に。
フォームで前レコードの値を複写する関数 - hatena chips
ちなみに、いちいちメッセージボックスを表示させて確認するのは、ユーザーにとって面倒だと思うので、自分が設計するなら、F1、F2の更新後処理で、規定値プロパティに入力値を設定すれば、新規レコードに直前に入力した値が規定値として表示されるので、変更があるときのみ入力、選択するようなUIにします。
hatenaさまへありがとうございます(返信遅くなりました)。
規定値をコードで設定出来るとは知りませんでした。その方が簡単に出来そうですね。試して上手くいかない場合はまた投稿致します。宜しくお願いします。