• ベストアンサー

ファイルメーカーの検索スクリプトに関して

1月分・2月分・3月分 .... と各月での「対象レコード」を検索するスクリプト(名称:1月検索・2月検索 ...)をサブスクリプトと見立て、1月~12月分のスクリプトを一気に実行する「表示」という名称のスクリプトを作ってあります。 各月に該当するレコードが有るときには、この「表示」スクリプトは順調に動作するのですが、例えば1月分にレコードが存在しない場合には、「この検索条件のセットに該当するレコードはありません」(条件変更・続行・キャンセル)が表示されてスクリプトが停止されます。 私は、この場合「表示」スクリプトは、1月のサブスクリプトの実行をパス(該当レコードがない場合はパスする)して2月・3月 ... のサブスクリプトの実行へ移行させたいのですが、その場合のスクリプトの記載が分かりません。 IF関数の利用では「解消」できないものでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.4

検索された対象レコードをどう処理するのか不明ですが、Get ( 最終エラー )を使います。 スクリプトの先頭でエラー処理をオンにして、検索実行ステップの後に ・If Get ( 最終エラー )=401 -------検索しても該当レコードがない場合 ・次のスクリプトステップを実行----例えば2月の検索スクリプトステップ ・Else-----検索して該当レコードがあった場合 ・検索されたレコードの処理 ・End If

mcx
質問者

お礼

ご指摘のスクリプトを私のデータ処理なりに若干修正して組み込みましたら、思ったとおりの動作が確認できました。大変ありがとうございました。

その他の回答 (3)

回答No.3

バージョンが不明ですが、ウチの5.5あたりだと「エラー処理」スク リプトステップでエラー処理をオンにしておいて、Status(エラー) 関数の様子を見ますね。検索条件に一致するレコードがなければ、 Status(エラー)が401になりますので、 検索実行 if[「Status(エラー)<>401」]   レコードがあるときの処理 endif みたいな感じで。

mcx
質問者

補足

早速ありがとうございます。 私のバージョンは pro.8 なのですが、関数に「Status」が無くなっています。 この場合、「Status」関数に相当する関数名はなんでしょうか?

回答No.2

スクリプトの一番先頭に エラー処理[オン]

mcx
質問者

お礼

「エラー処理」にはじめて気がつきました。ありがとうございました。

  • cockerel
  • ベストアンサー率46% (253/548)
回答No.1

[エラー処理] スクリプトステップを使用しては如何でしょうか? ヘルプからの抜粋です。 構文 エラー処理 [<オンまたはオフ>] オプション [オン] では、警告メッセージや一部のダイアログボックスが表示されなくなります。エラー番号 100 または 803 のエラーが発生した場合、[ファイルを開く] ダイアログボックスのような標準ファイルのダイアログボックスも表示されなくなります。

mcx
質問者

お礼

「エラー処理」にはじめて気がつきました。ありがとうございました。

関連するQ&A