みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
バージョン:FMPro8.5
OS:MacOS10.8.5
いつも参考にさせてもらっております。
さっそくですが、
今回質問させていただきたい内容ですが、
例えば、「受注番号」と「日付」フィールドがあり、
検索実行日を「日付」フィールドに入れて検索をかけ、
ヒットした場合は、「受注番号」を入れてメール送信するスクリプトを組んでいます。
しかし、稀にヒット数が0件の時があります。
その時はメールを送る必要はないのですが、
メールの「受注番号」のところが、空の状態で、
メール送信されてしまいます。
そこで、
検索時ヒット数が0件だった場合はメール送信しないという、
スクリプトは組めるのでしょうか?
以上
ご確認お願い致します。
エラー処理がオンになっているのでは。
検索の直後で、Get ( 最終エラー ) を取得すれば、分岐できるはずです。
Offline
Shin様
お返事ありがとうございます。
確かにエラー処理ONが入っていました。
指摘通り設定を入れてみましたが、
まだ0件の時もメールがきてしまいました。
設定した方法は、
検索モードに切り替え[]
フィールド設定[日付のフィールドに検索当日の日付をGet(日付)で設定
検索実行
If[Get(最終エラー)]
レコード/検索条件/ページへ移動[最初の]
Loop
メールを送信[ダイアログ無し;メールアドレス....]
レコード/検索条件/ページへ移動[次の;最後まできたら終了]
End Loop
End If
これで設定しました。
どこがおかしいのでしょうか??
大変申し訳ありませんが、
よろしくお願い致します。
If[Get(最終エラー)]
これでは
エラーのとき、真になりますヨ
Offline
チポ さんの仰るとおり、これでは対象レコードがなかったときだけ実行されてしまいます。
エラー処理オン を取ってしまったら検索結果がないときにダイアログ出てしまいませんか?
エラー処理は FileMaker の出すエラーダイアログを制御するためのステップなので
あってもなくても Get ( 最終エラー ) はちゃんと動きます。
ダイアログなしで結果が0件で処理を止めたいなら入れておいても問題はないと思いますよ。
エラーダイアログだと使う方がびっくりするかも知れないので、
「メール送信対象のレコードはありませんでした。」など分かりやすいダイアログを
カスタムダイアログで出すという手もあります。
Offline
エラー処理はONにして
If[Get(最終エラー)≠401]----検索結果のエラー処理のみ
レコード/検索条件/ページへ移動[最初の]
・・・・・
としたらいいのでは。
If[Get(最終エラー)] を、
If[not Get(最終エラー)]
にしておく、というのが一番簡単では。
Offline
Pages: 1
[ Generated in 0.006 seconds, 10 queries executed - Memory usage: 551.43 KiB (Peak: 562.45 KiB) ]