みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
初めまして
FileMakerで初歩的かもしれませんが質問させていただきます
もし、複数の別のテーブルの値が判明しており、そこから更に別のテーブルのレコードを特定したい場合どのようにすればよろしいでしょうか?
例、AテーブルのA'レコードとBテーブルのB'レコード、CテーブルにはA'レコードとB'レコードとC'レコードがあるとします
A'レコードの値とB'レコードの値が判明しており、CテーブルのC'レコードを取得した場合どのようにすればよろしいでしょうか
リレーションシップの画面でそのように設定しようとしても、「複数のキーを設定できません」のような警告が出てきて、うまく取得できません(B2というテーブルが作られてしまう)
以上です。
分かりにくい質問で大変恐縮ですが回答よろしくお願い致します
Offline
AテーブルとBテーブルの関係は?
> CテーブルのC'レコードを取得
どのテーブルで取得するのでしょうか?
ご質問が抽象すぎて、よくつかめませんよ。
もっと具体的に書かれた方がよろしいかと。。
Offline
チポ様、閲覧ありがとうございます
すみません、データの構成ですが間違っていました。
AテーブルにA'レコードとC'レコードがあり、BテーブルにA'レコードとB'レコードがあり
CテーブルにB'レコードとC'レコードとD'レコードがあります
AテーブルとBテーブルはA'レコードで既にリレーションシップが設定されています
BテーブルとCテーブルをB'レコードでリレーションシップを設定し、
AテーブルとCテーブルをC'レコードでリレーションシップを設定しようとすると
グラフ内の2つのテーブルの間に複数のリレーショナルパスを指定することはできません。
と表示されます
>> CテーブルのC'レコードを取得
> どのテーブルで取得するのでしょうか?
AテーブルのC'レコードとBテーブルのB'レコードの一意の値から最終的にCテーブルのD'レコードの値を表示したいです
初心者故、的外れな質問かもしれませんがよろしくおねがいします
また説明不足なようでしたらまたご指摘いただけると嬉しいです
Offline
レコード、とは、フィールドのことでしょうか。
リレーションをループ上に設定することは出来ません。
リレーションのどちらかを、別のテーブルオカレンスにする必要があります。どちらを別オカレンスにするかは、運用を見ないと決められませんし、その設定で今後の運用に大きな影響を及ぼす可能性もありますので、よく考えて設定する必要があります。
Offline
Shin様、閲覧ありがとうございます
> レコード、とは、フィールドのことでしょうか。
すみません。フィールドのことです
> リレーションをループ上に設定することは出来ません。
> リレーションのどちらかを、別のテーブルオカレンスにする必要があります。どちらを別オカレンスにするかは、運用を見ないと決められませんし、その設定で今後の運用に大きな影響を及ぼす可能性もありますので、よく考えて設定する必要があります。
別のテーブルオカレンスというのは
グラフ内の2つのテーブルの間に複数のリレーショナルパスを指定することはできません。
と表示された時に既にあるテーブルオカレンスとは別の名前で作成するということでしょうか?
リレーションシップやテーブルオカレンス自体まだ完璧に把握しているわけではないので……必死に勉強してます
以上、よろしくお願いします
Offline
> AテーブルのC'レコードとBテーブルのB'レコードの一意の値から最終的にCテーブルのD'レコードの値を表示したいです
Aテーブルから見て、Bテーブルのレコードが対1であるのならば、
AテーブルでCを参照したいのでしょうね。
とすれば、
AとBのリレーションで、
AテーブルでB::B'の値を得るフィールドB'を作り、
Cテーブルとのリレーションを現在の照合にB'の照合をandで加えればいいでしょう。
Offline
ああ、
AとCのリレーションが出来ないのですね。
リレーションシップグラフで、
参照される側のCテーブルを複製して、C2を作り、それとAとでリレーションします。
参照する側を複製するととても面倒なことになりますから、
ここ、重要ですよ。
それで参照するフィールドは
C2::D'
ですね。
C::D'ではダメです。
Offline
チポ様、ありがとうございます
お教えいただいた通りに試してみたのですが、取得できませんでした……
レイアウトでフィールドの挿入等をする時に関連テーブル項目に表示されていれば取得できる気がします
現在Cテーブルは非関連テーブル項目に表示されています
Offline
リレーション
A::A' = B::A'
として、
Aテーブルで計算フィールドB'の計算式
B::B'
とします。
もう一つリレーション
リレーションシップグラフでCテーブルの複製を作り、C2とし
A::C' = C2::C'
and
A::B' = C2::B'
これで、
Aテーブルで
C2::D'フィールドの値を参照できます。
ここでは、BとCのリレーションは不要ですね。
もし、このリレーションをしないのなら、
C2は不要で、AとCのリレーションが可能になります
Offline
チポ様、ありがとうございます
教えていただいた方法で無事、D'フィールドを取得&表示することが出来ました!
大変助かりました。また何かあればよろしくお願いいたします!
Offline
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 520.4 KiB (Peak: 524.94 KiB) ]