みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
はじめまして高橋と申します。
FileMaker Pro 10を使っております。
毎月1日にスクリプトを使って全レコード(厳密には全レコードのうち、条件に合致する3割程度)を書き換えております。
しかし、スクリプトを使って書き換えると、修正日が自動入力されるフィールドに当然20xx/xx/01が入力されてしまいます。
そこで、1日にスクリプトを用いて作業する数分間だけは、修正日の自動入力をオフにしたいのです。
スクリプトでデータの設定をいじる方法はないのでしょうか?
または、データの設定をいじることなく、20xx/xx/01が入力されることを防ぐ方法はないのでしょうか?
なお、スクリプトで
Loop
修正日のフィールドコピー
本来やりたい処理
修正日のフィールドに貼付
次のレコードへ
Loop end
では結局、修正日のフィールドに貼付した後に20xx/xx/01が上書きされてしまいました。
そのため、現在は手動で自動入力を停止にした後、スクリプトを実行、その後、自動入力を再開しております。
来年度からは違うものが担当となり、引き継ぐ必要があるため極力、複雑な処理を残しておきたくないのですが・・・。
よろしくお願いいたします。
書き換えたいレコードだけをコピーしたテーブル(修正日自動入力は無し)からインポートして
書き換えてから照合インポートで書き戻すとか?
すみません。
作業が複雑で理解できません。
書き換えたいレコード(条件を満たすレコード)のみをエクスポートして、そのレコードを削除する。
その後エクスポートしたレコードを処理してから改めてインポートするということでしょうか?
ちょっと複雑でスクリプト組む能力がないのですが・・・。
どんな時に更新されないのか分からなかったので思い付きで書きました。
他の方からいいアイデアが出るでしょう。私が書いたのは
レコードのインポートで自分自身のファイルを指定して新規テーブルにインポートすると
フィールド定義ごとインポートされます。全レコードインポートされてしまうはずだけど。
また、レイアウトはコピペになるけど。
新規にできたテーブルで全レコードを削除して更新日フィールドを普通の日付フィールド
にしておきます。
元テーブルで絞り込んだ3割のレコードを新しいテーブルからインポートして、ここで書き
換えする。
元テーブルから別テーブルの書き換え済みのレコードをIDとかの照合で上書きインポート
するのですが、そのとき自動入力オプションをオフにする。
スクリプトにしておけば
元テーブルでレコードを絞って
ボタンを押す
別テーブルで書き換える
ボタンを押す
のような感じになると思います。
修正日を無視させるような修正って、なんですか。
運用を考えなおしたほうがいいかも。
例えば、そのフィールドだけを別テーブルに置く、など
Offline
Travellerさんの言うようにスクリプトを作成して試してみます。
もしうまいこといかないようでしたら、Shinさんのおっしゃるように2つに分けて活用するようにします。
修正日時には手作業で弄った日のみを表示させるようにして、スクリプトでは(ミスが絶対にないと仮定して)修正日時に影響しないようにしたかったのですが、そもそもご指摘された通り、若干歪な運用のままずっときていたことを考えると、この機会に修正してしまってもいいかもしれません。
Travellerさん、Shinさん
回答ありがとうございます。
別テーブル(csvとかでも)には修正日だけ入れればいいのでは。
変更するレコードを検索
修正日をエクスポート
訂正
修正日を照合または上書きインポート(自動入力しない)
レコードの追加削除がなければ、照合より上書きの方が速い。うっかりソートするとやばいので危険すぎか。
作業中に他で修正が入ると、古い値に戻ってしまう。(これは、現在の方法でも同じことですね)
そっか、自動修正された日付だけを上書き
がテーブル移動も無く簡単。。。
sorterさん回答ありがとうございます。
サーバーを置いて複数人で使用しているわけでもないので、自分が作業している時に他者の作業により不具合がでることはないのでご心配なさっている点は大丈夫です。
お三方、回答ありがとうございます。
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 516.64 KiB (Peak: 521.18 KiB) ]