みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
リレーションを行って、ルックアップ設定したのですが、
参照にする側のレコードの一番最初に入力されたものばかりが表示されます
なぜでしょうか?ご教示ください。
テーブルA テーブルB
A---------------------A
B---------------------B
C---------------------C
D D
ABC3つが合致した際にテーブルBのDの値をテーブルAのDに入力されるようにという
ごく普通のルックアップ設定だと思うのですが
参照される側Bに入力されているレコードが複数あるにも関わらす、テーブルAに入力される値は
テーブルB側の先頭・最初のレコードDに入力されている値ばかりがリレーションの合致とは無関係にテーブルAに表示されるという状態です
複数の関連レコードがあるときルックアップされるのは作成順の最初のレコードです。
リレーションのソートオプションが設定されているときはソート順の最初のレコードです。
Offline
Mozさん通りですが、、
テーブルAのレコードから見て、
テーブルBの関連レコードは複数あるのですよね。
そのうち一つのレコードを選んでその値を持ってくる。
これは、
その一つを選択する何かがないとFMには分かることでは無いです。
その何か、を照合に加えれば特定できますね。
両テーブルの各レコードは1対1で対応しているのでしょうか?
とすればどちらかのテーブルが不要になりますよ。
Offline
MOZさん チボさん 早速のご指導ありがとうございます
この場合テーブルBがマスターファイルとなりテーブルAと
リーレーションの3項目が合致するものは1つしかないのです
テーブルA テーブルB
A 患者ID A かんじゃID
B 検査月 B けんさつき
C 検査タイミング C けんさタイミング
D 検査項目 D けんさこうもく
テーブルA側で
BとCを入力してAも入力、その時点でテーブルAのDに
テーブルBのD「けんさこうもく」がテーブルAのD入力されるものと思っておりますが
例) テーブルB A ID555 B 6月 C 治療前 D 血液検査A というふうに
このIDの患者のレコードは、全く重複するものはありません もちろん患者は複数名おられます
テーブルA側の新規レコードで A B Cを入力した場合 その条件に合ったものが
テーブルBのDがテーブルAのDに入力されるはずですよね
ところが このIDの患者の中で最初にテーブルBのDに入力してあるものが 常に表示されます。
再度、誠に申し訳ありませんが、ご教示、よろしくお願いします。
リレーションの設定を見直してみれば。
Offline
見直すしかないですが
リレーションが=でなくXになってるってことも考えにくいし
それほど単純な状況なら間違える余地もあんまりないので、実際にはテーブルAやBのコピーがリレーショングラフ上で複数あるとかですかねえ?
himadaneeさん MOZさん ありがとうございます
himadaneeさん、テーブルA Bのコピーが複数ある についてですが
確かに、オリジナルのABをリレーションしよとすると 二つ以上は、、、ような 表示が出てきて
新たに名前を付けてリレーションするように求められました
himadaneeさん Shinさん ありがとうございます
himadaneeさん、テーブルA Bのコピーが複数ある についてですが
確かに、オリジナルのABをリレーションしよとすると 二つ以上は、、、ような 表示が出てきて
新たに名前を付けてリレーションするように求められました
かかれたリレーションは
三つのリレーションですか?
Offline
チボ様
3つといいますか、テーブルA Bとも 患者IDが、患者マスターというテーブルのIDとリレーションしてあります。
よろしくお願いします
新たにマスタテーブルが出てきましたが、
ここでは関係ないですよね。
リレーションは
テーブルA テーブルB
A = A
and
B = B
and
C = C
となっていますか?
複数のリレーションを定義していると、
リレーションマップグラフで
テーブルB2
のようになっている場合もありますね。
もしこうなっていたら、
ルックアップのソースフィールドも
テーブルB2::D
として、テーブルオカレンスをそろえなければだめです。
参照する側のテーブルAはデフォルトのまま使わないと、
面倒なことになりますからご注意を。
Offline
たとえばリレーションをコピーを作らずに
C==A==B==C
のようにつなぐとすると(右と左のCは同じもので、実際はABCで三角形になってる)
AからCを参照するのにどっちの経路で参照していいかわからなくなるので、「二つ以上は、、、ような 表示が出てきて」できなくなってるわけです。
この場合左右のCのどっちかはコピーを作ってリレーションすることになります。(AやBのコピーを作っても可能でしょうが)
C==A==B==C2
この状態でBのルックアップや計算でC2でなくCを使うと、意図しない結果になります。
himadaneeさん ご教示ありがとうございました。
Pages: 1
[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 567.93 KiB (Peak: 584.47 KiB) ]