みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
誕生日や誕生日の半年後の日が近い人の順番でソートされるデータベースを作りたいと思っています。
データベースを開けると、近々誕生日を迎える人が、誕生日に近い順で最初からソートされて一覧表にされているようなイメージです。
例えば、本日が9月3日であれば、まず最初に9月3日に誕生日を迎える人の名前がリストとして載り、9月4日に誕生日を迎える人の名前がその次に来て、一番最後に9月2日に誕生日を迎える人の名前があるようなイメージです。
同様に、本日が9月3日であれば、ちょうど半年後は3月3日になりますから、3月3日に誕生日を迎える人の名前がリストとして載り、3月4日に誕生日を迎える人の名前がその次に来て、一番最後に3月2日に誕生日を迎える人の名前があるようなイメージです。
この2つが同時に表示されなくても、ボタンによって一覧内容が切り替わるというのでも構いません。
なお、データとしてあるのは誕生日のみ、つまり月日のみで、生年はわからない前提でお願い致します。
完全に新しくデータベースを作ると考えてくださって、結構です。
よろしくお願いいたします。
Offline
挙げた例がメチャメチャですよ。
いずれにせよ、
誕生日を
0903
の様な数字にして、
本日より前の誕生日には
1200
を加えたフィールドを作れば、範囲の検索・ソートが出来ますね。
Offline
月割り日付計算の話で毎度問題になる点、の説明がまず必要でしょう。
例えば、8月31日の半年後とは?
2月28日?、2月29日?、3月2日?、3月3日?
のどちらの計算結果を式に求めたいのか?
Last edited by Hiro (2017-08-28 10:55:38)
Offline
ソートしようとすると対象の全レコードで計算しないといけなくなるので、検索するだけにした方がいいかも?
Offline
月末の処理については別に考えてもらう事にして、
Abs ( Get ( 日付 ) - Date ( 誕生月 ; 誕生日 ; Year ( Get ( 日付 ) ) ) )
を計算して、1以下を抽出します。次に、その値を第1優先で昇べき、誕生月日で昇べきにソートします。
6ヶ月後は、
Abs ( Get ( 日付 ) - Date ( Mod ( 誕生月 + 5 ; 12 ) + 1 ; 誕生日 ; Year ( Get ( 日付 ) ) ) )
を使って同様に計算すれば良いでしょうね。
Last edited by Shin (2017-08-29 09:38:39)
Offline
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 509.95 KiB (Peak: 516.66 KiB) ]