#060 フォームを前回閉じたときのプロパティ値を復元するには? フォーム、VBA

テキストボックスへの入力値やコンボボックスでの選択値など、フォームを閉じた際のプロパティ値を次回フォームを開いたときに復元する方法をご紹介します。

それらの値を復元するためには、まずフォームが閉じる際にそれらを保存しておく必要があります。"フォームが閉じる際"に保存処理を行いますので、フォームの[閉じる時]または[読み込み解除時]イベントプロシージャにその処理を記述します。一方、"復元する"処理はフォームの[開く時]または[読み込み時]イベントプロシージャで行います。プロパティ値の保存方法としてはデータベース上のテーブルに保存するという方法もありますが、データベースを共有している場合でもユーザーごとに異なる値を保存できるよう、ここでは「レジストリ」に保存する方法を説明します。

レジストリに値を保存するには SaveSettingステートメントを、また保存されている値を読み出すには GetSetting関数を使用します。次の例ではフォーム上のテキストボックス"txtInputData"に入力された値とコンボボックス"cboSelData"で選択された値を保存・復元します。"MyApp"の部分にはデータベースアプリケーション名を表す任意の名前を指定します。また"StartUp"の部分には保存値をグループ化した名前を指定します。ここではフォームが起動したときに復元する値群を保存するので"StartUp"としましたが、もちろん名前は自由に設定することができます。"InputData"や"SelectData"は保存された値を識別するためのキー名です。これらの名前も自由に指定することができますが、SaveSettingで指定した名前でGetSettingを呼び出す必要があります。
Private Sub Form_Close()
  SaveSetting "MyApp", "StartUp", "InputData", Me!txtInputData.Value
  SaveSetting "MyApp", "StartUp", "SelectData", Me!cboSelData.Value

End Sub

Private Sub Form_Load()
  Me!txtInputData.Value = GetSetting("MyApp", "StartUp", "InputData")
  Me!cboSelData.Value = GetSetting("MyApp", "StartUp", "SelectData")

End Sub

※レジストリエディタ(WINDOWS\REGEDIT.EXEです)を起動して、画面左のツリーで
     HKEY_USERS\.Default\Software\VB and VBA Program Settings
  を確認してみてください。上記の保存値が見つかるはずです。

| Index | Prev | Next |



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