最新トピック
8
3 日前
Hatena様にご質問 3 日前
1
1 ヶ月前
排他制御 1 ヶ月前
6
5 ヶ月前
モジュールでカレントフォームのコントロールを使うには 5 ヶ月前
7
5 ヶ月前
日付のテキストボックスからフォームが開けません 5 ヶ月前
9
5 ヶ月前
レポートにおける数値の間隔を広げる方法 5 ヶ月前
12
5 ヶ月前
リストボックスから複数選択しそれをテーブルに格納したい 5 ヶ月前
タグリスト
Markdown テーブル生成
Accessのテーブルやクエリのデータを貼り付ける場合は下記で、Markdown書式のテーブルに変換して貼り付けてください。
リレーション組めれば楽なのにってパターンですね。あるあるです。が、データベース的にはあまり考えたくない特殊な条件なので質問時点で記載があるとよかったかなぁと思います
この条件だと、最後に提示したメイン-サブフォーム形式は使えないので「T_モニタリング(ケアプランID)」と「T_ケアプラン(プランID)」で(想定とは逆向きの)一対多でクエリを組んで計画日を拾うためだけの形で運用します
ケアプランIDは計算で求めることになる(求められる)のでフィールドに持つ必要はないともいえるのですが、結構複雑な処理になるので必要なタイミングで取得したらデータとして保存する(「ケアプランID」フィールドを設ける)というのがやはり扱いやすいと思います
質問では評価記入の基準のために「評価日」を設ければいいのではないか?としていますが、ケアプランIDがあればその計算は簡単なのと、ケアプラン側から評価の一覧を見たいとなった場合、ケアプランIDでモニタリングのデータが抽出できる等のメリットもあります
こうすると問題点が2つ上がってきます
1.どのタイミングでケアプランIDを取得するか、その求め方
求め方については、モニタリングの計画日がケアプランの計画期間内になるようなケアプランIDを拾えばいいので次のような式で求められます
「計画期間終」の入力が実際のプラン終了時(それまでは未入力)なんて場合は
Nz([計画期間終], DataAdd("m", 6, [計画日])-1)等、手入れが必要になると思いますタイミングは、まず、モニタリングのデータ入力時に「計画月」を入力したタイミングで更新後処理イベントを使って
これで、ケアプランが存在しない場合はNullチェックで警告が出せますね
もう一つは、モニタリング入力時にケアプランが存在しなかったデータについて「後から入力する」ことですが、これはケアプラン入力時に更新クエリを発行すればいいでしょう
2.ケアプランIDがない場合、「評価」の入力可否をどのように決めるか
ケアプランIDがある場合は、
DateDiff("m", [計画日], [計画月])で何か月目なのかが判断できますない(nullの)場合は、「ケアプランが不明です」として入力不可にしてしまうか、推定3か月目等、それでも入力すべきタイミングを計算するかを考える必要があります。後者の場合は、ケアプランの最後のデータを拾ってきて仮の計画日として計算させる形になります