Access Tips
#779
モジュール上の変数値をコントロールソースで参照するには?
フォーム、VBA
フォームモジュールや標準モジュールで宣言された変数は、VBAのコード内では参照できてもコントロールの「コントロールソース」プロパティなどから直接参照することはできません。プロパティシートで「変数名」や「=変数名」といった書き方は無効です。実行時に「#Name?」と表示されてしまいます。
しかし、
その変数の値を返すだけの”Functionプロシージャ”
を作っておき、それを
「コントロールソース」プロパティ
に設定することで、間接的に変数値を参照することができます。
それには、次のようにしてモジュールやフォームデザインを作成します。
フォームから参照可能な場所(そのフォームのモジュールや標準モジュール)に”変数”および”その変数を返すFunctionプロシージャ”を作成します。
例(フォームモジュールの場合):
'フォームから参照する変数の宣言
Private pVariable As Variant
Private Function GetVariable() As String
'変数pVariableの値を返すだけのFunctionプロシージャ
GetVariable = pVariable
End Function
そのプロシージャを呼び出す命令をプロパティシートの「コントロールソース」プロパティ欄に記述します。
例:
あとは任意の位置でその変数に値を代入したり更新したりするコードを記述します。
次の例ではフォーム読み込み時と2つのコマンドボタンでそれぞれ異なる値を代入しています。
なお、一度表示したフォームの裏でコード上で変数値を更新した場合には(例ではボタンクリック時)、画面を最新情報に更新するためにフォームの
「Recalc」あるいは「Refresh」メソッド
も実行する必要があります。
Private Sub Form_Load()
'フォーム読み込み時
pVariable = "あいうえお"
End Sub
Private Sub cmd更新1_Click()
'[更新1]ボタンクリック時
pVariable = "####はひふへほ####"
Me.Recalc
End Sub
Private Sub cmd更新2_Click()
'[更新2]ボタンクリック時
pVariable = #1/1/2024#
Me.Recalc
End Sub
実行例:
フォームを開いた直後
[更新1]ボタンをクリックしたとき
[更新2]ボタンをクリックしたとき
|
Index
|
Prev
|
Next
|
T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved