• ベストアンサー

ファイルメーカーPro7 2種類の期間をスクリプト内で検索するには

売上の集計表を作成しています。 当期と前期を比較するための検索を実現したいのですが、うまくいきません。 検索用のレイアウトを用意し、そこで期間を入れ、ボタンを押すとスクリプトがはしり検索できるようにしたいのです。 フィールド  当期開始日(グローバル_日付)  当期終了日(グローバル_日付)  前期開始日(グローバル_日付)  前期開始日(グローバル_日付) 当期を指定すると自動で前期に日付が入るようにしてあります。 当期開始日...当期終了日 or 前期開始日...前期終了日のように抽出したいのですが、できません。 当期開始日...当期終了日だけだとできるのですが。 スクリプトは 計算結果を挿入[t_請求::請求日 ; GetAsDate(t_請求::当期開始日) & "..." & GetAsDate(t_請求::当期間終了日)] だと成功します。 が、 計算結果を挿入[t_請求::請求日 ; GetAsDate(t_請求::当期開始日) & "..." & GetAsDate(t_請求::当期終了日) & "or" & GetAsDate(t_請求::前期開始日) & "..." & GetAsDate(t_請求::前期終了日) とandでつなぐと〔「2003/12/25」の形式で・・・〕とメッセージが出てきてしまいます。 「計算結果を挿入」に複数条件を指定することはできないのでしょうか? 他に何か方法はないでしょうか? 非常に困っております。よいアドバイスがありましたらよろしくお願いいたします。

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

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

"or"がまずいようです。 たとえば、  検索モードに切り替え  計算結果を挿入[xxxx]  新規レコード/検索条件  計算結果を挿入[yyyy]  検索実行 という形にすればOR条件が適用されるはずです。

yura64
質問者

お礼

「新規レコード/検索条件」を追加するとは、全く頭にありませんでした。 cockerelが書き込んで下さったとおりスクリプトを組んだところ、無事成功しました。 本当にありがとうございます。

その他の回答 (1)

回答No.1

私はまだ5.5を使ってるんですが、変わってないはずなので… ファイルメーカーで A or Bの検索をするなら、検索条件を2つ作っ てそれぞれAとBを入れておけばいいんです。 つまり、検索モードにして 「新規検索条件」→「当期の範囲を挿入」→「新規検索条件」→ 「前期の範囲を挿入」→「検索実行」 の流れでいきます。 ヘルプで「複数の検索条件」って検索すれば詳しい話が出てくるは ずです。

yura64
質問者

お礼

アドバイスありがとうございます。 検索モードでの複数条件を指定するのはわかっていたのですが、 今回実現したかったのは検索用レイアウトを用意し誰でも使えるようにしたかったので、ボタンにスクリプトをうめこんで実行できるようにしたいと考えていました。 ありがとうございました。

関連するQ&A

  • ファイルメーカーPro8の検索

    検索について悩んでいます。複数のフィールドを同時に検索したいのですが、良い方法はないでしょうか? ・業務日誌をテーブルA、検索用レイアウトがテーブルBとします。 テーブルBのフィールドは、開始日、終了日、氏名、があります。テーブルAには作成日、氏名、があります。上記の3つを検索したいのですができません。 期間(開始日...終了日)。日付指定の1日(開始日)と氏名の2種類を別々にはできるのですが、両方を同時にできるスクリプトがうまくいきません。 よろしくお願いいたします。

  • ファイルメーカーpro.9で期間計算のをしたい

    ファイルメーカーpro.9をwinで使用しているものです。 開始日付と終了日付を入力すると、その間が何ヶ月あるのかを計算したいのですが、どのような計算式にすればよいのでしょうか。 具体的には以下のとおりです。 毎月の支払い日  10日(顧客ごとに違う)(タイプ数字) 開始日(タイプ日付) 終了日(タイプ日付) ↑この間に、何回「10日」がくるのかを計算したいのです。 終了日は○○年○月10日と入力するので その日も含めた回数が知りたいです。 また、支払日が「月末」である場合は 数字タイプでは計算できないでしょうか… この場合、どのような処理が考えられますか? よろしくお願いいたします。

  • ファイルメーカーPro6 全レコードでのスクリプト実行

    お客様のデータ管理をファイルメーカにて行っています。 基本ファイルAと対応履歴の内容ファイルBとがあり、Aにポータルを作成し、顧客ごとの訪問履歴の管理を行っています。 今、このAファイルに新しく、訪問回数をポータル内のレコードの数にて確認するためのレイアウトを作成しました。 複数顧客の状況を一目で確認できるように、リスト形式にて表示させているのですが、どうしてもポータル内のレコード数を計算させるために、顧客ごとにボタン押下にてスクリプトを実行させなければなりません。 顧客数が多いため、はっきり言って現在の状態では活用することが出来ません。 全レコードのスクリプトを一度に作動・計算させる方法はありますでしょうか? もしくは、別の対処方法があるようでしたらご教示いただけたらと思っております。 ちなみに現在は、履歴入力用(ポータルの在る)レイアウト(1)と訪問回数確認用のレイアウト(2)をスクリプトにて、(2)→(1)(ポータル数計算)→(2)と移動させています。 また、ポータル内の最終レコード内にある、日付フィールドの日付(最終対応日)のみを(2)のレイアウトに反映できれば、と思っていますが、どうしても初めのレコードの日付が反映されてしまいます。 あわせて、宜しくお願い致します。

  • ファイルメーカー・スクリプトの作成法を教えて下さい。

     ニュース・ダイジェストを編集する操作を一括処理するため、以下のような手順でファイルメーカーのスクリプト作成を試みましたが、うまく行きません。 1)スクリプト・メニューで『ScriptMaker(S)』を選択。 2)『作成』を指定。 3)『スクリプト名』を『ダイジェスト』と記入。 4)検索実行[記憶する]。  (レコード番号フィールドで特殊文字『*』を検索し、全カードを選択) 5)レコードのソート[記憶する]。  (国地域/日付/フィールド番号の順にソート、何れも昇順。) 6)『フィールド内容のエクスポート』で『日付』を指定。 7)再度『フィールド内容のエクスポート』で『見出し』を指定。 8)さらに『フィールド内容のエクスポート』で『前書き』を指定。 9)『スクリプトを完全アクセス権で実行』をクリックし、『OK』。 10)『スクリプトに表示させる』をクリックし、『実行』。 11)ソート画面がポップアップするため、『OK』をクリック。  以上のスクリプトにより『ダイジェスト.tab』と言うファイルが作成されましたが、ワードで中身を見ると、15本の記事中の最初の1本の『前書き』のみでした。  しかし手動で以上の操作を行うと、15本の記事の『日付』/『見出し』/『前書き』を含んだ『ダイジェスト.tab』が作成されます。  スクリプトの作成手順の誤りを教えて下さい。また、手動で 『フィールド内容のエクスポート』を実行する際には『出力ファイルの文字セット』を『日本語(Shift-JIS)』に設定しますが、この設定をスクリプトに組み込む方法も教えていただければ幸いです。よろしくお願いします。

  • ファイルメーカー 日付関数

    以前下記の内容の質問をし回答を頂いて計算できるようになったのですが この計算式(支払日(計算結果:日付)= Date(Month(請求日 - 締日) + 支払い月 + If(締日 = 0,0,1) + If(支払日付 = 0,1,0),支払日付+1,Year(請求日 - 締日))-1)に手を加えて 同一支払いフィールドに請求日から7日目を計算して支払日フィールドに日にちが入るようにする計算は出来るでしょうか? ご教示宜しくお願い致します。 <以前の質問文> ファイルメーカーVer5.0で顧客管理台帳と営業台帳を作りました。 顧客台帳に各顧客の支払い条件が入っています。 例 締め日フィールド:5日、10日、15日、25日、末 支払い月フィールド:当月、翌月、翌々月、起算90日 支払日フィールド:5日、10日、15日、25日、末 (ポップアップリストで各顧客毎に値一覧より指定) 営業台帳には、請求書発行日フィールドと支払日フィールドがあります。 営業台帳の請求書発行日フィールドに日付(不特定日)を入れることで 締め日、支払い月、支払日を換算した日にちを支払日フィールドに 入れることは出来ないでしょうか。 ご教示お願い致します。 <以前回答頂いた内容> 請求日(日付) 締日(数字) … 0は末日 支払月(数字) … 0は当月 支払日付(数字) … 0は末日 支払日(計算結果:日付)= Date(Month(請求日 - 締日) + 支払い月 + If(締日 = 0,0,1) + If(支払日付 = 0,1,0),支払日付+1,Year(請求日 - 締日))-1

  • ファイルメーカPro7 自動計算について

    現在、人員管理のデータベースを作成していますが、契約開始日と期間を入力すると、契約終了日が自動に計算できるようにしたいのですが、どのように式(関数?)を設定するればよいのでしょうか。 初心者なので、ヘルプを読んでもよくわかりません。 ・契約開始日 2004/01/01〔手入力〕 ・期間 6ヶ月〔一月単位:手入力〕 ・契約終了日 2004/6/30←自動計算 宜しくお願いいたします。

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

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

  • ファイルメーカーのスクリプトで25日締めの請求データを作成していますが・・・

    毎度お世話になります。 ファイルメーカーVer4.0 OS=Win2000です。 毎月25日で締めて請求書を起こすために、締め日の翌日(26日)から締め日までのデータを検索して表示するスクリプトを作成しております。 「計算結果を貼り付け」で現在の日付から、表示させる締め日を貼り付けて、検索させようとしております。 見づらくて申し訳ございませんが、本日の日付を拾ったあと、下記の計算をさせようとしていますが、「関数のカンマの数が多すぎます」とエラーが出て困っています。 if(Month ( 本日 )=1, if(Day ( 本日 ) < 26, Year ( 本日 )-1 & "/" & Month ( 本日 )-2 &"/" & 26 & "..." & Year( 本日 )-1 & "/" & Month ( 本日 )-1 &"/" &25, Year ( 本日 )-1 & "/" & Month ( 本日 )-1 &"/" & 26 & "..." & Year( 本日 ) & "/" & Month ( 本日 ) &"/" &25, if(Month ( 本日 )=2, if(Day ( 本日 ) < 26, Year ( 本日 )-1 & "/" & Month ( 本日 )-2 & "/" & 26 & "..." & Year ( 本日 ) & "/" & Month ( 本日 )-1 & "/" & 25, Year ( 本日 ) & "/" & Month ( 本日 )-1 & "/" & 26 & "..." & Year ( 本日 ) & "/" & Month ( 本日 ) & "/" & 25, if(Day ( 本日 ) < 26, Year ( 本日 ) & "/" & Month ( 本日 )-2 & "/" & 26 & "..." & Year ( 本日 ) & "/" & Month ( 本日 )-1 & "/" & 25, Year ( 本日 ) & "/" & Month ( 本日 )-1 & "/" & 26 & "..." & Year ( 本日 ) & "/" & Month ( 本日 ) & "/" & 25))))) ※(本日)とはフィールド名で、スクリプトの最初に「現在の日付を貼り付ける」を入れてありますので、スクリプト起動時に当日の日付が入力されます。 要は、当日が25日までであれば、1月は前年の11月26~12月25日を表示し、 2月は前年の12月26~翌年の1月25日を表示し、3月から12月までは、当日が25日までは、前々月の26日~前月の25日迄を表示し、26日~末日までは前月の26日~当月の25日を表示させて、それを作業日のフィールドに貼り付けて検索すれば、直近の25日締めで表示されると考えました。 どこが違うのでしょうか?

  • MSアクセスで期間検索は?

    アクセスで書式[日付(S)]のフィールドを期間検索するクエリを作りたいのですが良くわかりません。 検索期間入力用のフォームに[開始][終了]のコントロールを書式[日付(S)]で作成しました。

  • アクセスのフォームで期間検索するには?

    アクセスの検索フォームで、レコードを別フォームで表示して、表示したフォームでフィールド毎に検索しています。 日付の部分だけ、検索方法が分からず、なかなか出来ない状態です。 このフォームに、開始と終了のテキストボックスを設置しています。 ボタンを押して、開始と終了の期間のデータを表示出来ればと思います。 宜しくお願いします。