みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもお世話になっております。
FileMaker Pro Ver.16
Windows7
以下、3つのテーブルがあります。
顧客テーブル(顧客名や住所等が登録されている)
Aテーブル(ポータルを挿入し、データを入力)
Bテーブル(Aテーブルと同じポータルを挿入。ポータルフィルタで顧客と日付によってデータ表示を変えることができる)
それぞれのリレーション関係は次のとおりです。また、いずれも「レコードの作成を許可する」にチェックが入っています。
Aテーブル(顧客ID)=顧客テーブル(顧客ID)=Bテーブル(顧客ID)
この状態でAテーブルに新規レコードを作っても、顧客テーブルとBテーブルには何の影響もありませんが、
Bテーブルで新規レコードを作り顧客名を入れるとAテーブルと顧客テーブルにも自動で新規レコードができてしまいます。
ちなみに、A、顧客テーブルともに自動作成されたレコードはすべてのフィールドが空白の状態です。
また、「レコードの作成を許可する」のチェックをはずすと、Bテーブルで新規レコードに顧客名を入れる際「1つ以上の必要な関連レコード~~」とエラーメッセージが出ますが、Aと顧客テーブルに自動でレコードができることはありません。ちなみに、このエラーメッセージを無視しても問題なく顧客名を入れたりポータルにデータを表示することができます。(ただ、都度メッセージが出るのはストレスです・・)
AとBの顧客フィールドオプション内容や顧客名を入力する際のスクリプト等はまったく同じ条件が登録されています。
できれば、Bテーブルで新規レコードを作ってもAテーブルや顧客テーブルに新規レコードが作成されないようにしたいのですが、AとBは同じ条件なのに異なる動きをする原因がわからず悩んでいます。
お手数ですが、ご教授お願いいたします。
Offline
Bテーブルに配置されているのはAテーブルの「顧客名」フィールドなのではありませんか?
レコードの作成オプションを「いずれも」設定しているのはマズいでしょう。
各テーブルのフィールドのフィールドオプション(特に顧客ID)や
リレーション構造およびそれぞれのリレーションオプションを詳細に書いてみては如何でしょう。
Last edited by Moz (2017-10-06 16:37:33)
Offline
テーブルB のレイアウトで、テーブルA の顧客名フィールドを参照するようになっているためでしょう。
現実的になにを行いたいのかよくわかりませんが、顧客テーブルが顧客マスターの意味で作っているのでしたら、DB を再構成するべきかと思います。
Offline
Moz様、Shin様
返信が遅くなり申し訳ありません。
また、ご返答ありがとうございました!
お二人のコメントを参照しそれぞれ参照フィールドやオプション内容、リレーションの設定等を見直してみました。
その結果、自分でもなぜそうなったのかよくわからないのですが、逆に今まで以上に良いものができました!
非常に助かりました!「解決」にさせていただきます。
Offline
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 553.8 KiB (Peak: 581.8 KiB) ]