- ベストアンサー
Access2000で変数が初期化されないようにする
フォームを開く際にインプットボックスで担当者名を入れて変数に格納、そのフォームにおけるレコードの登録ごとに、その担当者名をあるテーブルのあるフィールドに毎回入れようとしているのですが、1レコード目はいいのですが、2レコード目以降は変数が初期化されてしまうらしくエラーが出ます。そのような場合に静的変数?を使ったような気がするのですが、どのようにコーディングするのでしょうか?どなたか教えて下さい。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
先ず、そのプロシージャをデバッグしましょう。目的の変数がどんなタイミングで初期化されるのかが分かればプロシージャの根本的な修正が出来ます。 > そのような場合に静的変数?を使ったような気がするのですが 静的変数(Staticステートメント)を利用したサンプルを見たことがありません。かわりにパブリックレベル変数(Publicステートメント)を利用したらどうでしょうか? 但し、ハッキリとは分かりませんが ・プロシージャの実行中にエラーがでた場合 ・デザインビューを表示した場合 など、パブリックレベル変数が初期化される場合があります。 ご注意ください。
その他の回答 (2)
> フォームを開く際にインプットボックスで担当者名を入れて 「InputBox関数」はどの部分に書いているのでしょうか? もし、そのフォームの「開く時」イベントシージャに書くのなら、フォームのヘッダ上にテキストボックスを配置して そこに格納するようにします。 テキストボックス名を「txtName」と仮定すると txtName = InputBox("担当者名を入力して下さい") 担当者名を保存するテーブルに対するレコードセット名を「rsTableA」、フィールド名を「fldName」と仮定すると、 rsTableA!fldName = me.txtName でもダメでしょうか? これなら、そのフォームが開いている間は担当者名を参照できます。 テキストボックスが表示上マズイのであれば、「不可視」に設定すればよいのでは?
- palmmy
- ベストアンサー率38% (841/2169)
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_050_04.html パブリック変数を宣言して、そこに入れておけば どうでしょう?