今日のテーマは「FileMakerの日時の管理」です。
タイムスタンプのフィールドを作成して、作成日時を自動で記録するようにしていました。
ところが、表示や検索の関係で、作成日と作成時刻を別々のフィールドに記録したくなりました。
これを実現するには、フィールドを作成してオプションを設定するだけです。
ところが、これだけだと、設定以後の記録はとれますが、過去のフィールドが空のままです。
そこで、簡単に過去のタイムスタンプの記録から作成日と作成時刻を抜き出して、空だった過去のフィールドにも記録させようと思います。
以下は、その手順の備忘録です。
【前提】
- タイムスタンプのフィールドがあって、自動記録の設定がしてある。
- すでに今まで作成したデータのタイムスタンプには、作成日時が記録してある。
【手順】
- フィールドを作成する>フィールド名>作成日
- タイプ>「計算」
- 関数を入力する>Left ( 記載日時 ; 10 )
- 計算結果>日付
- これで「OK」で保存
続いて
- フィールドを作成する>フィールド名>作成日時刻
- タイプ>「計算」
- 関数を入力する>Right ( 記載日時 ; 8 )
- 計算結果>時刻
- これで「OK」で保存
こうすると、
新しく作成した「作成日」と「作成時刻」のフィールドにタイムスタンプのデータが転記されて、空のフィールドはなくなります。
このままでも今後は関数で自動的に記録されていきますが、以後は、関数に頼らなくても、自動的に記録させるようにします。
手順>フィールドのタイプを変更する
- 作成日>「計算」>「日付」
- オプション>■作成情報 日付(□にレチッックを入れる)
- 「OK」で保存
時刻も同じ手順です。
- 作成日>「計算」>「時刻」
- オプション>■作成情報 時刻(□にレチッックを入れる)
- 「OK」で保存
以上の作業が終わったら「OK」でデータベースの管理画面を閉じます。
あとはレイアウトに「作成日」と「作成時間」を配置します。
これで、以後は、レコードを作成するたびにタイムスタンプとは別に「作成日」と「作成時刻」がフィールドに記録されていきます。
※「作成時刻」と「作成時間」と違う名前にしてしまっていますが、混乱やミスを避けるためにネーミングは、一致させた方がいいですね。