みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
ハタ坊 さんの発言:
Hiro さんの発言:
製造「月」データがない場合は、便宜的に中間月=6と仮定した式例です。
Let([
#set=
Let([
#ym=Substitute(製造年月フィールド; ["年";¶];["月";¶]);
#y=GetValue(#ym; 1);
#m=GetValue(#ym; 2);
#m=Choose(IsEmpty(#m);#m; 6)
];
#y*12 + #m
);
#now=Year(Get(日付))*12 + Month(Get(日付));
#pas=#now - #set
];
Div(#pas; 12) & "年" & Mod(#pas; 12) & "月"
)
ありがとうございました。
要望通りの動きになりました。
Hiro様、大変感謝いたします。
先ほどはありがとうございました。
おかげさまで希望通りのDBに近づくことができました。
もう少しだけ質問があります。
先ほどの計算式を入力した場合に、新しいレコードを作成すると、製造年月フィールドは空欄なのに
「経過年数」というフィールドに「2017年2ヶ月」と表示されてしまいます。
これを修正したいです。
製造年月フィールドが空欄ならば、先ほどの計算式を行わずに「経過年数」フィールドを空欄に保ちたいです。
製造年月フィールドに入力されたときにはじめて計算されて、「経過年数」フィールドに計算により導かれた答えが
出力されるようにできないでしょうか?
ちなみに、計算式の指定ウインドウの(式内の全フィールドの値が空欄の時、計算しない)チェックボックスにチェックを入れてもやはり計算されてしまいます。
ご教授の程、宜しくお願い致します。
Offline
Choose(IsEmpty(製造年月);
//▼先の式
Let([
#set=
Let([
#ym=Substitute(製造年月; ["年";¶];["月";¶]);
#y=GetValue(#ym; 1);
#m=GetValue(#ym; 2);
#m=Choose(IsEmpty(#m);#m; 6)
];
#y*12 + #m
);
#now=Year(Get(日付))*12 + Month(Get(日付));
#pas=#now - #set
];
Div(#pas; 12) & "年" & Mod(#pas; 12) & "月"
)
//▲ココまで
)
Offline
ありがとうございます。
要望通りの動きが実現できました。
誠にありがとうございました。
Offline
Pages: 1
[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 505 KiB (Peak: 515.81 KiB) ]