#086 別のフォームのコントロールプロパティを取得する方法 フォーム、VBA

次のように、すでに開かれている別のフォームのコントロールの内容を参照したい場合があります。
  • 別のフォームのテキストボックスの内容を自分のフォームのテキストボックスの初期値として表示したい。
  • 別のフォームのテキストボックスの内容を自分のフォームのラベルに表示したい。
  • 別のフォームのオプショングループの選択値を自分のフォームにも反映させたい。
  • 別のフォームのチェックボックスのON/OFFに応じて自分のフォームの編集可否を設定したい。
  • 別のフォームのリストボックスと同じ値集合ソースを使いたい。
などなど。

このような場合には、次の構文を使って別のフォームのあるコントロールのプロパティ値を取得することができます。
Forms!フォーム名!コントロール名.プロパティ名
例えば、
・Me!txtData = Forms!frmMain!txtData.Value  (.Valueは省略できます)
・Me!chkData = Forms!frmMain!chkData.Value  (.Valueは省略できます)
・Me!lstSyohin.RowSource = Forms!frmMain!lstSyohin.RowSource
のように使います。

また、VBAだけでなく、フォームやコントロールのプロパティに"="のようにして代入することもできます。例えば自分のフォームにあるテキストボックスの[コントロールソース]プロパティを "= Forms!frmMain!txtData" (自動的に"=[Forms]![frmMain]![txtData]"のように整形されます)とすれば、VBAを使わなくても、フォームを開く際には常に"frmMain"フォームにあるコントロール"txtData"の値を表示させることができます。
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved