みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
OS:[ Win 7/8/10 ]
FileMaker Ver:[ Pro 13/14 ]
お世話になります。
EXCELファイルからのレコードのインポートに当たり、
・EXCELの列:A、B、C、D、E
・FileMakerのフィールド:A、B、C、D、E、F
のようになっており、
何かしらのスクリプトを組むことでインポート時に、
フィールドFに固定の値を入力したいと考えています。
フィールドFは空欄不可&常に検証の設定になっており、
スクリプトを、
1.インポート
2.フィールドに入力
の順で組むと、インポートそのものが失敗してしまいます。
フィールドの設定を変更することや、EXCELの列を追加する以外の方法で、
上記は実現可能でしょうか。
お手数かけますが、ご教授頂けますと幸いです、よろしくお願いいたします。
Fのフィールドオプションで固定値を自動入力する設定にしてみたら?
Offline
旅人様、ご返信ありがとうございます。
説明不足で申し訳ないです。
Fのフィールド自体は、例えば
・対応待ち
・対応済み
・連絡待ち
などのように、複数の値を手動で入力するようになっておりまして、
インポート時にオートで「対応待ち」の値が入力されるようにしたいと考えております。
空欄不可なんだから手動で新規レコード作成した場合もどれかを入れるわけですよね。どれかをデフォルトにすればいいのでは。
インポート時の自動入力は、全フィールドで実行されてしまうので、この場合は結局使えないかもしれないけど。
勘違いの回答でした申し訳ない。
インポートスクリプトで制御してみてはいかがでしょうか。
EXCELファイルからのレコードのインポートに当たり、
・EXCELの列:A、B、C、D、E
・FileMakerのフィールド:A、B、C、D、E、F
インポートした瞬間ではインポートしたレコードのみとなっていると思われるので、Fフィールドを「対応待ち」で全置換してみては?
レコードのインポート
フィールド内の全置換
※全置換は計算結果で置き換える⇒指定⇒"対応待ち"
Offline
前と同じ内容ですけど
Fのフィールドオプションで計算値自動入力を"対応待ち"にして
インポート時の自動入力オプションをオンにするだけではないのですか?
Offline
空欄不可なんだから手動で新規レコード作成した場合もどれかを入れるわけですよね。どれかをデフォルトにすればいいのでは。
インポート時の自動入力は、全フィールドで実行されてしまうので、この場合は結局使えないかもしれないけど。
tim様
返信ありがとうございます。
デフォルトに設定できればよいのですが、
運用上の都合で、(インポート以外での)レコード作成時点では空欄である必要がありまして困っております。
勘違いの回答でした申し訳ない。
インポートスクリプトで制御してみてはいかがでしょうか。
EXCELファイルからのレコードのインポートに当たり、
・EXCELの列:A、B、C、D、E
・FileMakerのフィールド:A、B、C、D、E、Fインポートした瞬間ではインポートしたレコードのみとなっていると思われるので、Fフィールドを「対応待ち」で全置換してみては?
レコードのインポート
フィールド内の全置換
※全置換は計算結果で置き換える⇒指定⇒"対応待ち"
junike様
返信ありがとうございます。
「インポートした瞬間」なのですが、空欄不可と設定しているフィールド(フィールドF)の値がインポートするEXCELに含まれていない場合、
エラーは出ないのですが、実際にはレコードが作成されませんでした。(正常にインポートされたような表示ですが、インポートされませんでした。)
※インポートするEXCELファイルにフィールドFの値を入れるとインポートは正常にできました。
ゆえに、「インポートして作成されたレコードを操作する」という行為が、そもそもレコードが作成されないためにできずに、困っております。
前と同じ内容ですけど
Fのフィールドオプションで計算値自動入力を"対応待ち"にして
インポート時の自動入力オプションをオンにするだけではないのですか?
旅人様
ご返信ありがとうございます。
計算値自動入力の設定を行うと、
インポート以外での新規レコード作成時にもフィールドFに自動入力されてしまいませんでしょうか?
運用上の都合で、FileMaker側から新規レコードを作成する場合は、
フィールドFに自動入力はされない形にしておきたいと考えておりまして・・・。
自動入力の計算式で
Case(Get(ScriptName)="インポートするスクリプト";"既定値")
のようにするか、
一旦別のテーブルにインポートして値が入った状態にしてから目的のテーブルにインポートしたらどうかな。
手入力の時は、空白で置いておきたい,という事ですか。(余り意味が無いと思いますが)
ならば、自動入力は適当な数値か文字を入力する様にしておき,インポート後に全置換でその値を変更しておきます。
手入力の際には,その入力をラジオボタンで入力する様にしておけば、その自動入力した値は見えませんし,手で設定した値に置換されます。
Offline
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 525.65 KiB (Peak: 546.19 KiB) ]