みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもお世話になっております。
日付を入力する相殺年月日というフィールドが画面にありまして、入力した年月日ごとに対応した項目(管理種別・契約種別)を画面に表示したいのですが、
一番直近のレコードの契約終了日は未記入というルールがありまして、そのせいでリレーションが上手く張れません。
テーブルA テーブルB テーブルC
------------ ------------ ------------
物件コード 契約No 契約No
相殺年月日 物件コード 管理種別
契約開始日 契約種別
契約終了日
テーブルBとテーブルCには、契約No同士の「=」のリレーションが張ってあります。
テーブルBには、1つの物件コードに対し、契約開始日と契約終了日の違う複数のレコードが登録されています。
例)契約No:1 物件コード:101 契約開始日:2022/01/01 契約終了日:2022/04/30
契約No:2 物件コード:101 契約開始日:2022/05/01 契約終了日:2022/11/30
契約No:3 物件コード:101 契約開始日:2022/12/01 契約終了日:(空欄)
テーブルAとテーブルBには、以下のようなリレーションを張ってやったのですが・・・
物件コード=物件コード
相殺年月日≧契約開始日
相殺年月日≦契約終了日
これだと、例えば相殺年月日に2022/06/15のような契約終了日が入力されているレコードに紐づいた管理種別と契約種別を持ってこれるのですが、
2022/12/15と入力しても管理種別と契約種別は空欄になってしまいます。
理屈としてはそりゃ空欄になるよ、と理解はしているのですが、では、どのようなリレーションを張ればいいのでしょうか?
すみません、テーブルのフィールド名が崩れて表示されてしまいました。
テーブルAには物件コード、相殺年月日というフィールドがあり、
テーブルBには契約No、物件コード、契約開始日、契約終了日が、
テーブルCには契約No、管理種別、契約種別というフィールドがある、という意味です。
リレーション用に
Case ( IsEmpty ( 契約終了日 ) ; Date ( 12 ; 31 ; 2199 ) ; 契約終了日 )
のような計算フィールドを作ればいいのでは。
himadanee様
出来ました!ありがとうございました。
自動入力の計算式で、Min ( Date ( 12 ; 31 ; 4000 ) ; self ) で上書きありにしておきます。
条件付き諸式で、self = Date ( 12 ; 31 ; 4000 ) なら、文字色を白などにしておけば、見た目は同じようになります。アクティブになったときに、4000/12/31 が見えますが、それが気にならなければ、これでも OK です。
Offline
Pages: 1
[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 553.78 KiB (Peak: 581.75 KiB) ]