• ベストアンサー

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

素人です。ファイルメーカーで顧客管理のような簡単なデータベースを作成しています。データベースを開いている時に、別のデータベースファイルを開いて表示させるボタンを作ろうと思い、スクリプトを作っています。別のデータベース(台帳)を開くことはできますが、その時に同じ人のデータを表示させるにはどうしたらよいでしょうか。  もうひとつ、あるデータベースを開くと、かならず最初のデータが表示されますが、開いた時にかならず最後に入力したデータを表示させる方法はないでしょうか 。

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

  • ベストアンサー
  • himajin1
  • ベストアンサー率43% (184/422)
回答No.2

ファイルメーカーのバージョンがわかりませんが、素人とあるので、バージョン6を最近購入されたと仮定して、マック版の単語で解説します。 ウインドウズ版では、メニューの単語が少し違いますので、適当に読み替えてください。 顧客管理のデータベース と 顧客台帳のデータベースが 有ると仮定します。 顧客管理のデータベースを開いているときに、顧客台帳の情報を表示させるには、 リレーションという機能を利用し、レイアウトの中に、ポータルと呼ばれる窓を設置して、表示させるのが便利です。 このとき、顧客台帳のデータベースは、隠れて開かれています。 こうすれば、ボタンを押さなくても、顧客台帳の内容が自動的に表示されています。 リレーションは、「ファイル」メニューから「リレーションの定義...」を開きます。 ファイル「顧客管理」のリレーション定義のウインドウが開きますので、「新規...」のボタンを押します。 ファイルを開く ダイアログが開きますので、「顧客台帳」のファイルを指定します。 リレーション編集のウインドウが開きますので、 左の顧客管理のフィールドの中から、氏名 右の顧客台帳のフィールドの中から、氏名 を選び、「OK」「終了」を押します。 レイアウトモードで、  ┌ ┐  └ ┘ の、アイコンを押して、レイアウトの中で、大きめにドラッグします。 「ポータル設定」のダイアログが開きますので、 <不明> からレコードを表示 となっているのを、 顧客台帳(先ほど作った、リレーション) からレコードを表示 に切り替えます。 表示する行数は、同姓同名さんの出現確率次第ですが、3行程度で垂直スクロールバーを付ければいいでしょう。 これで、ポータルのエリアが確保できました。 この中に、顧客台帳のフィールドを配置すれば、okです。 ちょっと説明を、端折りましたがトライしてみてください。 ご希望のように、スクリプトで処理するならば、 ボタンのスクリプトステップの最初に、 氏名 フィールドの内容をコピーして、 開かれた方の顧客台帳にも、スクリプトを用意して、検索モードで、氏名のフィールドに、 ペーストすれば出来ますが、あまり、お勧めしません。 かならず、最後に入力したデーターを表示させるのは、ちょっと面倒ですが、最後のレコードを表示させるのならば、次のように設定します。 スクリプトメニューから、「スクリプト定義...」 スクリプト名に「はじめに」と記入して、「作成」 「はじめに」のスクリプト編集のウインドウ が開きますので、その中に、次のようなスクリプトステップを作ります。 1:ソート/検索/印刷 の中から、「全レコードを表示」 2:切り替え/移動   の中から、「レコード/検索条件/ページへ移動」     で、「最後の」を指定 「OK」「終了」 つぎに、ファイルを開いたときに、このスクリプトを実行するように指定します。 「編集」メニューから、「プレファレンス」(初期設定)「ファイル...」 「ファイルプレファレンス」が開きますので、 □実行するスクリプトに、チェックを入れて、  <不明> を押して、<はじめに>に変更して、 「OK」を押してください。 いったん、そのデーターベースを閉じて、再度開いて見れば、望みの作業が出来ているはずです。 ちなみに、「かならず、最後に入力したデーターを表示させる」ためには、 ファイルメーカープロのレコードは、作成順に並びます。 レコードの作成順と、最後にデーターを入力した順はだいたいの場合一致しますが、最新のレコードを入力した後で、少し前のレコードの内容を修正した場合は、一致しません。 質問の言葉を厳密に解釈すると、修正年月日と修正時刻のフィールドを作り、ソートさせる作業が必要になります。

その他の回答 (1)

noname#9624
noname#9624
回答No.1

>同じ人のデータ IDの番号管理でリレー組めば出来ませんか? >最初のデータが表示 スクリプト定義の左、切り替え/移動(スクリプトの種類)の所で、レコード/検索条件/ページへを移動、を右へ移動させ、オプション指定で「最後の」を選んでみてください。

関連するQ&A

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

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

  • ファイルメーカーについて教えてください。

    ファイルメーカーで顧客管理のためのデータベースを作成中です。 データベースの情報入力画面から、顧客に出すための見積書、仕様書、提案書などへ展開できるようにしたいと思っています。 データベースのレイアウトに、フォルダなどは貼り付けることは出来るのでしょうか?マニュアルを見るとファイルを貼り付けることは可能のようですが・・・できればフォルダを貼り付け、いくつもの仕様書、提案書などをそこから展開できるようにしたいのですが・・・。 お詳しい方、いらっしゃいましたら、ぜひご教示願います。

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

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

  • ファイルメーカーPro8 直前のレコードからデータを引っ張る

    使用OS:Windows XP Prosessional 使用ソフト:ファイルメーカーPro8 現在、受注データベースを作成し管理しています。 新規レコードを作成する際に、初めての顧客であれば 今まで通りの新規レコード作成で良いのですが、 常連顧客の受注時は、作成の手間を少しでも省きたいと思い、 ・顧客名 ・住所 ・電話番号 を自動的に入力した状態で新規レコードが作成できるスクリプトを 新たに作りたいのですが、スクリプト作成がうまくいきません。 実際に、このような使い方をしたいです↓ 「常連新規」なるスクリプトボタンを押すと、 直前まで選択していたレコードに入力されていた 顧客名、住所、電話番号があらかじめ入力された状態で レコード作成される、、、という形です。 現在、このようなスクリプトを作成しています。 (これだと単なる新規レコードが作成されてしまいます) -------------- 新規レコード/検索条件 直前に参照したレコードから挿入[選択; 受注データベース::顧客名] 直前に参照したレコードから挿入[選択; 受注データベース::住所] 直前に参照したレコードから挿入[選択; 受注データベース::電話番号] -------------- お分かりになる方、是非間違いをご指摘ください。 それでは何卒宜しくお願い申し上げます。

  • ファイルメーカーPro6とAccess2003について

    ファイルメーカーPro6とAccess2003について Access2003でデータを登録した時に、ファイルメーカーにも登録って可能ですか? 具体的に言うと・・・ Access2003で顧客データを入力するプログラムをvbaを使用して作りました。 "データ登録"ボタンを押下時にAccess2003のテーブルに登録と、ファイルメーカーPro6の顧客データにも登録したいのですが、可能でしょうか? どのたか参考になるソースを教えていただけると助かります。 宜しくお願いいたします。

  • ファイルメーカーでリレーション間をまたぐスクリプト

    ファイルメーカーでリレーションで繋がっている2つのファイルの 間でデータを自動入力するスクリプトの作成方法を教えてください。 表が2つあります。 商品管理表  商品ID 商品名  値段    1  りんご  100円    2  みかん  200円    3  バナナ  300円 注文表  客  商品  ID 個数  山田 りんご 1 3個  加藤 みかん 2 2個  中田 りんご 1 10個 となっており、リレーションが商品IDで結ばれています。 レイアウトモードで商品ごとに注文履歴が表示されるようになってます。 <レイアウト> りんご  山田 3個  中田 10個 ----------- みかん  加藤 2個 ----------- これにスクリプトで自動的に注文表に注文を加えていくように ボタンを作りました。 りんごのページで、個数と客名を入力の後、ボタンを押すと、 注文表にりんごの注文が自動的に入るようにしたいのですが、できません。 単にID無しの新規レコードが作成されるだけになってしまいます。 どうすればいいのでしょうか?

  • ファイルメーカーPro 二つのデータベース間のジャンプ

    台帳というデータベースに1000人の基本情報。 Aというデータベースにそのうちの100名の生活情報(カードのように表示)、同様にBというデータベースに100名の職業情報が登録されています。 A,Bの基本情報は台帳からのリレーショナル(ルックアップ)で表示されています。 Aで山田太郎さんが表示されているときに、Bの山田太郎さんのデータに、ボタンひとつでジャンプしたいのです。 今は、Bを開いて、いちいち山田で検索していますが、スクリプトでそれが出来ないでしょうか。

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

    ファイルメーカー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から書き出したデーターをファイルメーカーに取り込んで使用しています。 誰かに教わった訳でもなく、自己流(?)で覚えてきたので、分りずらくてすみませんが教えて下さい。

  • ファイルメーカーから特定のフォルダーを開く

    ファイルメーカー6である情報管理のプログラムを作っています。 ある特定のフィールドと同一のフォルダを開くスクリプトの作成は可能でしょうか。  たとえば、あるデータベースには氏名というフィールドがあります。コンピュータのドライブDには、氏名毎のフォルダーがありその人の画像データがたくさん入っています。  Aさんのデータを表示しているときに、あるボタンを押すと、Aという名のフォルダを開くという操作をしたいのです。  本当はAさんのデータの画面で、その画像をサムネイルの形で表示させたかったのですが、それをすると極めて重くなってしまいあきらめました。それで上記のようなことができないかと考えたわけです。  方法があれば教えてください。よろしくお願いします。

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

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