- 締切済み
VBAでstatic変数を宣言するとトラブル
フォームにクエリーを基にしたリストボックスがあり、クエリーの抽出条件には同じフォームのテキストボックスを指定しています。テキストボックスには規定値プロパティーで"*"を設定しています。 それで問題なく開くことが出来ていたのですが、必要があってフォームモジュールでStatic変数を宣言したところ、クエリーが機能せず、指定したテキストボックスのパラメーター入力ダイアログが表示されます。static変数の宣言を削除するとちゃんと動きます。public変数やモジュール変数を宣言してもおなじ現象が起きます。 原因はなんでしょうか。またどうすればstatic変数などを使うことが出来るのでしょうか? よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- mitarashi
- ベストアンサー率59% (574/965)
回答No.1
Access2010でフォームに非連結リストボックスと、非連結テキストボックスを置き、リストボックスの値集合ソースにテキストボックスの値を用いたSQLを設定するという簡単なサンプルで試したところ、フォームのモジュールレベルにstatic変数を宣言すると確かに再現しました。(フォームモジュールのプロシージャ内に宣言しても再現されません) しかしながら、フォームのモジュールレベルにstatic変数を宣言したいというニーズが分かりません。staticだろうとなかろうと、フォームが存在する限りは、モジュールレベルに宣言した変数の値は保持されると思いますので。また、必ず保存しておきたい値は、専用のテーブルを作成して保存しておけば、VBAがリセットされても残ります。 何をなさりたいかを開示いただけると、目的に即したアドバイスが得られるかもしれません。 なお、当方の試したモデルに誤解しているところがあればご指摘下さい。
お礼
ご回答ありがとうございました。 こちらのミスなのか、メールによる連絡がなく、お礼が遅くなり失礼しました。 当方、まだアクセスを体系的に理解していない面もあり、もういちどゆっくり考えることにします。 ありがとうございました。