FileMaker で作ったアプリがあって、データを日付順で呼び出しているのだが、アレなスクリプトでレコード番号を日付順の代わりに使っている。
レコード番号は登録順となっていて、日付順に登録しているので一見動いているように見える。
しかしながら FileMaker はユーザ操作で簡単にレコードを削除したり追加したりできてしまう。
特定の日付のレコードを操作ミスで消してしまって、代わりに新たにその日付のレコードを追加したら該当日付のレコード番号が一番最後になってしまう。
そんなトホホな状況で、レコード順と日付順が一致するように治すお話。
環境
- FileMaker Pro 11
- MS-Windows7
ソート
「レコード」-「レコードのソート」
一旦はこれで問題なく動作しているように見えるけれども、FileMaker を立ち上げ直すと元に戻ってしまう。
これを恒久化するには?
レコードのエクスポート
先のソートした状態で、「ファイル」-「レコードのエクスポート」。
「ファイルの種類を FileMaker Proファイル(*.fp7)」として「エクスポート」。
「現在のレイアウト」ではなく「現在のテーブル」を指定して、「全て移動」を選ぶ。
レコードの削除
エクスポートが終わったら、元のデータベースのレコードを削除しておく。
「レコード」-「全レコード削除」。
レコードのインポート
レコードが空になった状態で、さきほどエクスポートした fp7 ファイルをインポートする。
「ファイル」-「レコードのインポート」-「ファイル」でさきほどのエクスポートファイルを選び、「開く」。
配置順を「照合名順」、インポート方法で「新規レコードとして追加」として「インポート」。
「インポート中、入力値の自動化オプションを実行」をつけて(外しておいたほうがいいかな? とりあえず今回はつけました)、繰り返しフィールドの値のインポート方法を「元のレコードの設定を維持する」を選んで「インポート」。
注意点
特定の fp7 だけソートすればいいかなと思って該当ファイルだけ別マシンに持っていって作業しようとしたら、エクスポート時にエラー。別の fp7 ファイルを参照しているらしく、すべてのファイルが参照できる状態でエクスポートしたらうまくいきました。