Microsoft Access 掲示板

マスタから順繰りでレコードを持ってくる方法

5 コメント
views
4 フォロー

出勤簿をつくりました
これに”本日の目標”というフィールドを追加して、
本日の目標マスタから順繰りで表示されるにはどうしたらよいですか?

たとえば本日の目標が40項目あるとして
月などは関係なく、レコードの日付が変わるたびにマスタのID1から順に、日付ごとに割り振るイメージです
出勤簿なので一度表示された目標は変わることなく表示させたいです(格納することになるのでしょうか)

SOOS
作成: 2020/11/10 (火) 17:20:04
通報 ...
1

まずは営業日マスターテーブルを作成しましょう。
営業日IDは連番になるようにします。(オートナンバー型は削除したりすると抜けがでるので自前で採番するようにします。)
日付は主キーにしておきます。

営業日マスター

営業日ID日付
12020/11/02
22020/11/04
32020/11/05
42020/11/06
52020/11/09
 
本日の目標マスタ
本日の目標ID目標
1ああああ
2いいいい
3うううう

40まで

フォームやレポートのレコードソースのクエリは出勤簿と営業日マスターを日付で結合しておきます。

フォームやレポートの本日の目標を表示したいテキストボックスのコントロールソースを下記のように設定します。

=DLookup("目標","本日の目標マスター","営業日ID=" & (([営業日ID]-1) Mod 40)+1)
2

営業日をマスタ化するのですか?
営業日が前もって決まっているわけではなく、出勤簿をつけるときにはじめて確定します
紙ベースでいうと出勤簿用紙があり、日付などを書いたあとに、出勤順にリスト状に記入していく感じです

5
りんご 2020/11/14 (土) 02:24:39 48103@0e907 >> 2

社員情報テーブルに目標IDフィールドを追加、社員情報履歴テーブルの作成でも行けるかも?
例えば、
①朝の出勤ラッシュが終わったら、出勤した社員情報データを社員情報履歴テーブルに追加クエリ。
(とりあえず、社員IDと目標IDと日付)
②1日の業務が終わったら、出勤した社員情報テーブルの目標IDを更新クエリ。

3

休業日とか決まってないのですか。普通の営業形態は、休業日か決まっていて(当然営業日も決まる)。休日出勤があるとしても「本日の目標」は営業日のみにあるのが普通かなと思いましたが。

とくに休業日が決まっていないなら、全ての日付のマスターテーブルを作成してそれに連番を持たせるようにすればいいでしょう。
社員が出社したときだけ本日の目標を発行するということなら、その都度、営業日マスターにその日付を追加するようにすればいいでしょう。

4

「本日の目標」は営業日のみです

日付     名前 目標ID 
2020/11/12 田中 1
2020/11/12 鈴木 1
2020/11/12 高橋 1
2020/11/13 田中 2
2020/11/13 鈴木 2


2020/12/13 田中 40
2020/12/14 田中 1

と、日付が変わるごとに目標IDをずらしていき
最後まで来ると、また1から、というループにしたいです