プロが教える店舗&オフィスのセキュリティ対策術

私は、PCのインフラ整備の仕事をしているものです。
最近、作業の記録をFileMakerで整理していたのですが、解らない部分が出てきたのでどなたか教えて下さい。

作業記録には、お客様の名前を入力する欄があり、これは「お客様情報テーブル」から一覧を作成し、ポップアップメニューで選択するようにしています。
選択すると同時に、お客様の住所や電話番号が入力されます。

作業記録には、契約番号を入力する欄があります。一人のお客様が複数の契約を結ぶ可能性があるためです。契約番号は、「契約番号テーブル」から一覧を作成し、選択できるようにしています。
同時に、契約期間など他の情報も入力してくれます。

契約番号は、一人のお客様に対して複数存在する場合がります。これは一人のお客様が複数の仕事を依頼する事があるためです。逆に、一つの契約番号が複数のお客様に関わる事はありません。

テーブルは、以下の三つがります。
「作業記録テーブル」
「お客様情報テーブル」
「契約番号テーブル」

リレーションは、全てお客様の名前でつなげています。

さて、今抱えている問題なのですが、
契約番号をポップアップメニューで選択する場合、全ての契約番号が出てきてしまうのです。
リレーションを結んでいるので、お客様を選択した時点で、該当するお客様の契約番号しか出てこないと考えていたのですが、そうはなりませんでした。

つまりは、契約番号のポップアップメニューを、お客様の名前を選択した時点で絞り込みたいのです。

非常に解りづらい質問で申し訳ないのですが、どなたか教えて頂けないでしょうか。

A 回答 (1件)

1、まずファイルメーカーProのバージョンを教えてください。

(6と7では表現等が大きく違いますので。)

>契約番号は、「契約番号テーブル」から一覧を作成し、選択できるようにしています。

2、契約番号テーブルの番号一覧表(表形式か何か)をもとに、作業記録テーブルで契約番号の値一覧を定義し、ポップアップリストで入力しているという意味でしょうか。
 もしそうだとしたら、各テーブル間のリレーションと値一覧の定義は別個の存在ですから、ルックアップで特定のお客様を選択したからといって、値一覧に定義したデータがそのお客様に限定して表示されることはあり得ないと思いますが……。

>契約番号は、一人のお客様に対して複数存在する場合があります。

3、複数の番号はお客様毎の1レコード上で複数表示されているのでしょうか。それとも1個の番号毎にレコードがあるのでしょうか。
 
前者の場合、すなはち1人のお客様毎に1レコードという、お客様中心のデータベースになっているとすれば、お客様氏名を照合フィールドとして、契約番号テーブルから番号をルックアップすると(複数番号が存在する場合は)最初の番号しか答が返って来ない(ExcelのVLOOLUPと同じ)ので、その場合はポップアップリストから契約番号を入力せざるを得ないでしょうが、そもそも値一覧とリレーションは相関関係がない訳ですから、値一覧に定義した全番号がリストに表示されるのは仕方がないと思いますが……。

だからこういう場合は通常1契約番号1レコードという契約番号中心のデータベースにして、契約番号を照合フィールドにし、お客様情報(氏名、住所、電話番号)は(お客様情報テーブルからルックアップするのでなく)、契約番号テーブルに入力されたお客様情報を再ルックアップするのがベターではないでしょうか。

 どうしてもお客様毎の契約データが必要なときは、繰り返しフィールドを設けた別レイアウトのテーブルを作り、スクリプト定義でお客様名を検索して全契約を計上する方法もあるかと思いますが……。

 以上ご質問内容がよく理解出来ないまま、勝手に推測して答(らしきもの)を記入しましたが、全く見当はずれかも知れません。
 そのときはその旨ご説明の上、補足をお願いします。
    • good
    • 0
この回答へのお礼

僕も考えてみたのですが、データがお客様中心なのか契約中心なのかによって、やり方がかなり変わってくると思います。
一度、データベースの設計からやりなおしてみようと思います。
また是非質問させて下さい。

ありがとうございました。

お礼日時:2005/10/27 11:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!