• ベストアンサー

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

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

  • mcx
  • お礼率50% (23/46)

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

  • ベストアンサー
  • 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

  • ファイルメーカーのスクリプトについて質問です。

    ファイルメーカー5を使ってます。 Aのファイルは受注ファイル、Bのファイルは出荷ファイルにしています。 リレーションを組んで、AのファイルにポータルでBを表示しています。 Aに対して、Bが2ヶ以上の時はあるフィールドに印を付けたくてスクリプトを組みました。 Aのファイルで リレーションを組んでるフィールドをコピー 外部スクリプト(Bへ) Bのファイルで エラー処理[オン] 全レコードを表示 レイアウト切り替え 検索モードに切り替え 貼り付け[Aでコピーしたもの] 検索の実行 If[「status(対象レコード)>=2」] スクリプトの実行[サブスクリプト 外部[Aのファイルとスクリプト1] Else スクリプトの実行[サブスクリプト 外部[Aのファイルとスクリプト2] End If を組んでいるのですが、Aのファイルでスクリプトを実行するとBの検索の実行(検索結果は表示します)で止まってしまいます。 そのまま、Bのファイルでもう一度スクリプトを実行するとちゃんとAのファイルに戻って処理を完了します。 どうしてなのでしょうか? 会社では汎用データー(AS)を基本的に使用しているのですが、色々と使いずらいのでファイルメーカーと併用して使ってます。 BのファイルはASから書き出したデーターをファイルメーカーに取り込んで使用しています。 誰かに教わった訳でもなく、自己流(?)で覚えてきたので、分りずらくてすみませんが教えて下さい。

  • ファイルメーカーのスクリプトについて

     私の勤める学習塾で生徒の情報をファイルメーカーで管理しています。最近、月間報告書をスクリプトで自動作成するとき、その月の翌月が生徒の誕生日であるならば「誕生日おめでとうございます」。3月なら「進学おめでとうございます」というテキストも挿入されるようスクリプトを組んでみました。 まず「生徒情報」というファイルメーカーのファイルに生徒の生年月日が入っており、月間報告書ファイルがルックアップで生徒の誕生日の月と月間報告書の作成月の数字が一致したとき「誕生日・・」が。作成月=3のとき「進学・・」が出るようにしました。 ・新規レコード/検索条件 ・全レコードを表示 ・スクリプト一時停止/続行[] ←※報告書に年月を数字として手入力するため ・レコードのインポート[記憶する.「生徒情報」] ・フィールド設定[「誕生進級メッセージ」,「Case(指導報告書の作成月 + 1 = 生徒情報::誕生月, "今月はお誕生日ですね。おめでとうございます。" , 指導報告書の作成月 = 3, "進級おめでとうございます。","" )」]  しかし、レコードの最初の生徒についてはこのスクリプトは機能しますが、二人目以降には反映しません。理由としては何が考えられるでしょうか。よろしくご教授お願いいたします。

  • ファイルメーカースクリプトの件を教えてください。

    スクリプトで分からないことがあります。 在庫用に使用します。 検索をして、 例えば30件あった場合、30レコードが出てきたら 新規でレコードを30レコード追加して商品コードをそれぞれ新しいレコードに 自動的に貼り付けをさせたいのです。 1レコードの場合はスクリプトをうまく組めたんですが、複数あった場合に は色々やってみたんですが作動しません。どう組めばうまくいきますか? 1レコードの場合に組んでいるスクリプトは、 フィールドへ移動[商品コード]→新規レコード/検索条件→フィールドへ移動[商品コード]→貼り付け[商品コード] となっています。 その内容を一括でやる場合の組み方を教えてください。

  • ファイルメーカ助けて下さい。

    場所を示すフィールドがありまして場所フィールドを選択した後に『O.K』のボタンをクリックするとフィールド「場所」が示すレコードだけが表示する様に『O.K』ボタンを作ってあるんですが『O.K』をクリックしただけでは選択したフィールド「場所」が完全には検索後のレコードに表示されません。中途半端な状態なんですがボタンのスクリプトが不完全だと思うんですがどこがおかしいか分かりません。どなたか教えて頂けませんか? スクリプトは エラー処理[オン] コピー[選択、『場所フィールド』] 全レコードを表示 レイアウト切り替え[『検索後のフィールド』] 検索モードに切り替え[] レコード/検索条件削除[] レコード/検索条件削除[] レコード/検索条件削除[] レコード/検索条件削除[] 検索実行[対象レコードの絞り込み] 検索モードに切り替え[] ペースト[選択、場所を示すフィールド] 検索実行[対象レコードの絞り込み] レイアウト切り替え[検索のレコード] こんな感じです。誰か助けて下さい。

  • ファイルメーカーのスクリプト定義について教えてください

    都道府県別に検索ソートしたデータ―中、その住所を封筒に印刷する支持をスクリプト定義でつくりボタンを作りました。 一つ一つは、ボタンを押せば実行できるのですが、一つ一つボタンを押す手間を省きたいのでこれらのボタン(スクリプト定義)をさらにまとめて実行できるボタン(スクリプト定義)を作りたいのですが、それは可能でしょうか? 個々のスクリプト定義に検索ソートのみの指示が入っているものならば下記の定義内容でまとめて実行することはできました。  スクリプト実行[東京都]  スクリプト実行[神奈川県]  スクリプト実行[静岡件] ですが、印刷の指示が入っていると印刷はされず、また該当件数も最後スクリプト(上記だと静岡県)分しか表示されません。 印刷が入っていると不可能なのでしょうか?

  • ファイルメーカースクリプトの質問

    ファイルメーカーPro 7を使用しています。 現在アクティブのレコードを複製する作業が よくあります。 メニューボタンで回数分(10~30回)レコード複製ボタン を押していますが、面倒ですし何回複製したか途中で分からなく なることが多いです。 スクリプトで レコード/検索条件複製でレコード複製はできますが 回数の指定はできないのでしょうか。 よろしくお願いいたします。

  • ファイルメーカーのスクリプトについて

    ファイルメーカーのスクリプトで質問があります。 検索を行うスクリプトですが、以下の場合どのようにすればよいのでしょうか? フィールドA、フィールドBがあるとします。 フィールドAには不規則な4桁の数字が入っています。 フィールドBにはテキストデータが入っているレコードと入っていないレコードがあります。 検索したいのは、例えば フィールドAには「1111」と入っているが、 その中でフィールドBには何も入っていないもの、 を選び出したいのです。 スクリプトを作ろうとするのですが、 フィールドBに何も入っていないものを選ぶための、「除外」機能がないように思うのです。 もしそのようなスクリプトを組むことができたら是非教えて下さい。

  • ファイルメーカー8について

    ただいまファイルメーカー8でデータベースを作っているのですが検索を実行して検索結果が例えば6件出てくるとします。 その後編集というボタンを押すと今表示されているレコードを1件だけ表示させて そのレコードを編集し確定ボタンを押すと検索結果表示状態(レコード数6件)に戻したいのですがどのようなスクリプトを組めばいいでしょうか? お願いいたします。

  • ファイルメーカー検索後のリスト表示

    ファイルメーカーPro7を使用です。 検索ボタンを作成し、クリックすると 検索モード(フォーム形式)~検索用語入力し検索~ 対象レコードをリスト形式にて表示にするスクリプトは どのようにすればよろしいですか。 検索モードに切り替え[] 表示方法の切り替え[リスト形式] としてみましたが、検索はできても対象レコード がフォーム形式のままです。 またスクリプト一覧にある 切り替え/移動 検索モードに切り替えと 対象レコード 検索実行の違いがよくわかりません。 分かる方宜しくお願いいたします。

  • ファイルメーカー8.0 スクリプト作成

    ファイルメーカー8.0でスクリプトを作成いたしております。 「レコード/検索条件/ページへ移動」を利用するにあたって、「ステータスエリア」内の「レコード」番号を「コピー&ペースト」したいのですが、「レコード番号」はフィールドでもなく指定できません。 「レコード番号」をコピー等のために指定する方法はあるのでしょうか?