- 締切済み
アクセス:フォームを閉じずにデータ更新するには
みなさん、おはようございます。 データベースアクセスについて質問させていただきます。参考書やこちらの質問等もしらべましたが回答が得られなかったので質問致します。 現在、アクセスで病院のベッドを管理するアプリを開発中です。 ひとつのフォームに全病棟のベッドを表示するため500以上のコントロールを配置しておりますが、 すべて非連結にして、フォームを開くときのイベントプロシージャーにクエリを開いてすべてコントロールにテーブルのデータをはめていくように設計しています。 で、問題はこのフォームを開いたまま最新のデータに更新させたいのですが、再クエリーではうまくいきませんでした。 なぜうまくいかないのか理由はわかっていません(プログラマーの方ならうまくいかなくて当然とおっしゃるかもしれませんが) で、仕方なく、一定間隔の時間ごとにフォームを閉じて開くという方法を取っています。 この方法では遅いマシンだと再表示に時間がかかるのできっとほかにスマートなよい方法があるとおもっているのですがプログラミングのスキルが乏しいため詰まっております。 お知恵をお借りできれば幸いです。
- みんなの回答 (11)
- 専門家の回答
みんなの回答
- lv4u
- ベストアンサー率27% (1862/6715)
>>すべて非連結にして、フォームを開くときのイベントプロシージャーにクエリを開いてすべてコントロールにテーブルのデータをはめていくように設計しています。 これでは、フォームを開いたときだけしか、データ設定のプロシージャが実行されません。一定時間ごとの再表示が必要なら、タイマーを使って、定期的に、データ設定のプロシージャを実行させる必要があります。 URLを参照してください。 なお、病院でのマルチユーザ環境のアプリケーションですと、ACCESSでは細かな操作が必要な時、つらい局面があるような気がします。Visual BasicもしくはVC#などのほうがいいと思うんですけどね。まあ、この例のようなアプリなら許容範囲でしょうけど・・・
- 1
- 2
お礼
>>lv4uさん フォームを開いたときに記述した内容のコードをそっくりタイマーイベントに記述すればいよいとおもったのですが、そうすると修正する場合、2箇所も変更する必要があるので、汎用モジュール化して、それをフォームを開くときとタイマーイベントに設定すればよいと思いましたがいかがでしょうか? おっしゃるとおり、アクセスでの運用は正直怖いのですが、そこまで病院全体がシステムを使いこなせるようになったら、本格的にオーダリングや電子カルテを導入するようになると思います。いつのことやらですが。