たま氏の覚え書き

KNIME・AccessVBA・Swift等、学習したことを覚え書き

AccessVBA_フォームの操作その2_フォームから別のフォームに引数を渡す

フォームから別のフォームを開く際に引数を渡す方法

Docmdオブジェクトの【Open】メソッドのおさらい

OpenFormメソッドの書式

 Docmd.OpenForm フォーム名 , ビュー , フィルタ名 , フィルタ条件式 , データモード , 表示モード , OpenArgs

OpenFormメソッドの引数

第1引数:フォーム名 ※文字列で指定する場合にはダブルクォーテーションで囲む
第2引数:ビュー acDesign / acFormDS / acNormal / acPreview
第3引数:フィルタ名 ※抽出条件を指定
第4引数:フィルタ条件式 ※抽出するWhere条件式を指定
第5引数:データモード acFormAdd / acFormEdit / acFormPropertySettings / acFormReadOnly
第6引数:表示モード acDialog / acHidden / acIcon / acWindowNormal
第7引数:OpenArgs

▼よくわかる参考記事▼
Access VBA入門:DoCmd.OpenFormの使い方と引数とパラメータの説明|商品マスターフォームを開く


第7引数【OpenArgs】で引数を渡す方法

1.元のフォーム側のOpenFormメソッドにて、渡したい引数を7番目の位置に記述
2.渡した側のフォームにて【OpenArgs】プロパティから値を取得する

▼記述例_元フォーム(開く側)▼

Private Sub btn1_Click() 'フォーム「F_KEN_ALL1」のフォームモジュールに記載
 Docmd.OpenForm "F_KEN_ALL2",,,,,acWindowNormal,Screen.ActiveControl.Name '現在アクティブなフォームの名前を引数に指定
End Sub


▼記述例_現フォーム(開かれる側)▼

Private Sub Form_Open(Cancel As Integer) 'フォーム「F_KEN_ALL2」のフォームモジュールに記載
 Me.Label1.Caption = Me.OpenArgs
End Sub



本記事の関連記事は以下
▼フォームの操作その1_フォームから別のフォームを開閉▼
tama-shi.hatenadiary.com