質問: Me.伝票ID.Value ``` ### 何故実現できないのか 冒頭でDictionaryを用いて初期化している時、サブフォームまでは潜れないようでした。(参照できない) 伝票フォームオブジェクトのOpenイベントにしかけても、参照できないエラーが発生します。 Activateイベントに引っ掛けようとしても、Activateイベント自体が呼ばれませんでした。別画面に切り替え等の操作を行ったとしてもです。 画面が表示された後、親フォームに設置した何かしらのコントロールが起こすChangeイベントでは、子フォームへ対する参照が通りますが、実装としては人による操作が開始される前が望ましいと考えています。 他のアプローチがある場合、アドバイスを頂きたく。 宜しくお願いします。
回答: 私が過去に作ったcollectionを使って多重new Formするサンプル引っ張ってきましたが activateイベントは普通に反応しました。 ``` Me.伝票明細フォーム.Form.伝票ID.DefaultValue = Me.伝票ID.Value ``` これをせずにリンク親フィールド、リンク子フィールドを使って伝票IDを設定してはいけないんですか? このやり方はOpenArgsも使えないので初期値関連は渡せないのでめちゃくちゃ不便なんですよね... タイミングが許すのであればここで設定すればいいかと ``` With .Item(key) .Tag = Key .伝票ID = Call 伝票IDを取得する処理() 'その他初期化処理 .Visible = True '画面表示開始 .伝票明細フォーム.Form.伝票ID.DefaultValue = .伝票ID End With ```