投稿者 とくま  (社会人) 投稿日時 2011/3/23 09:29:27
具体的なコードの提示による説明を要求しても
いいと思うけど、結論はあまり変わらない気がします
のでレスします。

質問で明確になってない点ではっきりさせた方がいい
と思うのは、データ更新は VB2010 なんだけど、
表示更新は VB2010 のフォームなのか Access2007
のフォームなのかという事。
(これも、どちらでも答えは変わらない気もしますが。)

VB(VBA) と データベース(Access) じゃ、隣りの家
みたいなものだから、基本的に隣の家で食事の時間
なのか?お風呂の時間なのか?は、教えてもらわない
と分からないはずです。
そもそもフォームなど起動しているかどうかも分から
ないし、という事はイベントの通知をする人が居ない
のと同じだと思います。

データベースに変更があった場合に何かするには、
一般的には「トリガー」というものを作ります。
データベースの機能です。
キーワード検索すると Access でも情報が引っ掛かる
のであるのかもしれませんが、業務で Access を
データベースとする事はあまり無いので、実績は無し
です。
また、あくまでデータベース上での話で、おまけに
くっついている VBA のイベントが起こせるかも不明。
VB2010 であっても同様。隣の家ならまだ分かるけど、
実際に PC 上で動いているどのプロセスにイベントを
起こせばいいのかなんて判断できないはず。

一般の C/S システムでは、定期的にデータベース
検索して最新のマスタ情報を丸々表示更新します。
よっぽどデータ数が多い場合は差分を取ったりしますが、
データの変更をイベントで検知する事自体しません。

マスタで無く、実績データの更新自体で「排他処理」を
する場合は、データベースのテーブルにロックを掛け
たり、データ自体に更新情報を入れておき(更新者、
更新時間など)トランザクション処理の中で「データの
不整合が見つかった場合はロールバックする」という
作り方をします。

10年も前から変わらない定番の方法なので、最新の
新たな手法があるかどうかは知りません。