Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Access 2016)
複数人使用時でのフィルター結果の更新(反映?)について
投稿日時: 23/08/16 19:42:22
投稿者: おーさん0729

複数人使用時でのフィルター結果を更新(反映?)したいのですが、
テーブルにレコード100件、「ID」フィールドが数字とすると、
「ID」が1〜100のレコードが格納されているはずです。
この時、Aさんが「ID」=「1*」でフィルターすると、表示結果は12件(1,10〜19,100)かと思います。
このあと、Bさんが同じテーブルにレコード100件追加(「ID」は101〜200)したとき、
Aさんのフィルター結果が更新され、Bさんが追加したレコードからも該当するレコードを追加で表示することは可能でしょうか?
Aさんが再フィルターすることなく、「画面更新?(最新のデータに更新?)だけで」、です。
 ※システム的にはBさんが追加した時点でAさん側の画面が更新されるのが望ましいです。
 
 
個人的には、Aさんがフィルターした段階のレコード数が正しく、Bさんが追加すると勝手に該当レコードが増えるのはおかしいと思うのですが、システム的に一般的なのでしょうか?
(ユーザー視点で考えると増える方がユーザーにやさしいということを言われました)
 
拙い説明ですが、よろしくお願いします。

回答
投稿日時: 23/08/17 07:55:15
投稿者: Suzu

他のユーザーの更新内容を自動で表示する一般機能はありません。
 
フォームの Timerイベントにて、再クエリを行い表示する様にします。
何秒毎に更新するのかは TimerIntervalプロパティにて設定します。
 
そのフォームが入力・編集も兼ねるのであれば
入力中に、勝手に再クエリをされても困りますから、
それらの制御も必要でしょうね。
 
 

引用:
Bさんが追加すると勝手に該当レコードが増えるのはおかしいと思うのですが、システム的に一般的なのでしょうか?
(ユーザー視点で考えると増える方がユーザーにやさしいということを言われました)

 
やさしいか は さておき、実際にそうなっているシステム・仕組みが
身の回りにどれくらいありますでしょうか?
 
個人的に、「一般的?」と問われれば、【否】と答えるでしょうね。
 
入力と他レコードの表示を別フォームで行うならまだしも
Accessの強みとしては、帳票。 質問者さんも、帳票を多く使っている事と思います。
 
その中で、希望の動きを実装すると、多くのフォーム・レポートにその機能を導入する事になります。
表示だけであれば、Timer時に Requery を行う様にするだけですから、さほど苦にはなりませんが
 
 
・入力と表示が同じフォームの場合、入力中の値の扱い方
・更新間隔が短ければ短いほど
  PC、ネットワーク、データ本体を持つファイル共有元のサーバー
 に負荷がかかり、動作がもっさりとなる
 
それらを検討・テストし決めましょう。

投稿日時: 23/08/17 21:56:01
投稿者: おーさん0729

Suzu様
ご回答ありがとうございます。
結論から言いますと、質問内容のシステムを作る必要はなくなりました。
再度、確認すると、「仕様をきちんと決めてないようから確認した」というようなことを言われました。
@:100件からフィルターして10件表示
A:@のあとに別の人が100件追加したら、フィルターが更新され、20件表示
どちらの仕様で作っているのか、明示する必要があるというようなことも言われました。
その他子細は省きます(愚痴が入りそうなので)が、
「Timer時」で更新を制御する必要がありそうだとは思っています。
 
ありがとうございました。