OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

AccessのVBAで「イベント」を捉える方法について

  • すぐに回答を!
  • 質問No.248463
  • 閲覧数133
  • ありがとう数0
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 51% (39/76)

フォームを作り、その上に2列×15個のテキストボックスを配置しました。(2列15行の「表」(ひょう)のような状態です。)
左列は入金関係、右列は出金関係金額を入力します。
一番下行のテキストボックス2つは各列の合計(入金合計・出金合計)を入れたいのです。
各列の、どれかのテキストボックスに値が入力されたら、即時にその列の合計を変えたいのです。
複数の(同種と仮定して)コントロールをグループ的にまとめて考えて、そのどれかにイベントが起こったことを捉える方法はあるのでしょうか。14×2個のテキストボックスのChangeイベントを書けば良いとかを思い付くのですが鬱陶しいのと、VBAプログラムのレパートリーを広げたくて、どなたか(不可能という結論も含めて)、ご存知の方は教えてください。
98・Access97・Access2000です。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル14

ベストアンサー率 51% (1179/2272)

こんにちは。maruru01です。

おそらくかなり面倒だと思いますが、レパートリーを広げたいということなので、紹介します。
ただし、本に載っていた(しかもVB)だけで、実際に私は試してないので本当に出来るかどうかわからないですが。

やり方ですが、フレキシブルグリッドを使用する方法です。
フレキシブルグリッドは、ツールボックスのその他のコントロールの中の
「Microsoft FlexGrid Control, version 6.0」
を選択して配置します。
このフレキシブルグリッドは、エクセルの表のようなデザインをしています。ただし、ユーザーが直接入力出来ません。
そこで、テキストボックスをグリッドのセルと同じ大きさで用意します。
そして、グリッドのEnterかGotFocusイベントで、
1.どのセルが選択されたかを取得
2.そのセルの上にかぶせるようにテキストボックスを移動
3.テキストボックスにフォーカスを移動
4.テキストボックスにセルの内容を代入
ここでユーザーがテキストボックスに入力し、テキストボックスからフォーカスが移動したらそのExitかLostFocusイベントに
5.テキストボックスの真下のセルにテキストボックスの値を入力
6.グリッドのセルの値(変更後)を元に再計算
仮にテキストボックスからEnterや矢印キーで移動したら、別のセルへ移動して、また1.から繰り返す。
こんな感じです。
要は、いくつ入力欄があっても、実際に入力するのは1箇所だけなので、そこにテキストボックスを持ってきて入力するということです。
細かいところはいろいろ調整しないといけないと思います。

おそらく、全部のテキストボックスのイベントを書く方が、簡単で早く出来ると思いますが、まあ、時間に余裕があったら試してみて下さい。
では。
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ