Access (VBA)

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

 
(Windows 10全般 : Access 2016)
複数人仕様でのレコードの入力
投稿日時: 22/12/05 19:36:26
投稿者: おーさん0729

数年Accessを使用してますが、初心者です。
 
複数人での使用を想定しています。
同時に同じレコードを編集したときに、
該当するフィールドだけを後で編集する人のデータ内容にしたいです。
編集対象がレコードのようですし、フィールド単位で最初の人と後の人の内容を別々に更新するのは難しいでしょうか。
 
例えば、
縦  横 高さ
100 200 300
のレコードがあり、
最初の人が縦を100→150にし、後の人が横を200→250にするとして、
150 250 300
のレコードになるようにしたいです。
 
データの競合?が起こり、内容を変更するかどうかの選択が出ることは知っています。
その場合ですと、100 250 300のレコードになると思います(最初の変更がなかったことになる)
 
今は、フォームのレコ−ドソースにじかにテーブルを設定しています(ワークテーブル等は無し)
 
よろしくお願いします。

回答
投稿日時: 22/12/05 21:44:07
投稿者: hatena
投稿者のウェブサイトに移動

更新はレコード単位なので、同じテーブル内のフィールドの場合は不可能でしょうね。
 
どうしても、したいなら、テーブルを分ける必要があるでしょう。
 
T_main (ID)
T_縦 (ID, 縦)
T_横 (ID, 横)
T_高さ (ID, 高さ)
 
T_mainをソースとしたフォームに、T_縦、T_横、T_高さ をそれぞれソースとするフォームを作成して、サブフォームとして埋め込めば可能になるでしょう。
 
通常、一つの物体の 縦、横、高さ は関連性があるのものなで、一つのレコードにすべきものだと思われますが、実際のデータは関連性がないものというでしょうか。
関連性がないもので、それぞれ独立して更新する必要があるものなら、上記のようにテーブルを分ける設計にすべきでしょうね。

投稿日時: 22/12/06 23:21:57
投稿者: おーさん0729

hatena さんの引用:
更新はレコード単位なので、同じテーブル内のフィールドの場合は不可能でしょうね。
 
どうしても、したいなら、テーブルを分ける必要があるでしょう。
 
T_main (ID)
T_縦 (ID, 縦)
T_横 (ID, 横)
T_高さ (ID, 高さ)
 
T_mainをソースとしたフォームに、T_縦、T_横、T_高さ をそれぞれソースとするフォームを作成して、サブフォームとして埋め込めば可能になるでしょう。
 
通常、一つの物体の 縦、横、高さ は関連性があるのものなで、一つのレコードにすべきものだと思われますが、実際のデータは関連性がないものというでしょうか。
関連性がないもので、それぞれ独立して更新する必要があるものなら、上記のようにテーブルを分ける設計にすべきでしょうね。

 
ありがとうございます。やはり、ダメそうですね。
 
各レコードに対して、縦横高さを分けたフィールドも存在しますし、品名や担当者等の完成性が高いもの?もあります。

投稿日時: 22/12/11 23:05:14
投稿者: おーさん0729

ありがとうございました