初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2023-06-06 09:56:15

masayoshi
Guest

ルックアップ

リレーションを行って、ルックアップ設定したのですが、
参照にする側のレコードの一番最初に入力されたものばかりが表示されます
なぜでしょうか?ご教示ください。

テーブルA    テーブルB
A---------------------A
B---------------------B
C---------------------C
D         D

ABC3つが合致した際にテーブルBのDの値をテーブルAのDに入力されるようにという
ごく普通のルックアップ設定だと思うのですが
参照される側Bに入力されているレコードが複数あるにも関わらす、テーブルAに入力される値は
テーブルB側の先頭・最初のレコードDに入力されている値ばかりがリレーションの合致とは無関係にテーブルAに表示されるという状態です

#2 2023-06-06 10:39:02

Moz
Member

Re: ルックアップ

複数の関連レコードがあるときルックアップされるのは作成順の最初のレコードです。
リレーションのソートオプションが設定されているときはソート順の最初のレコードです。

Offline

#3 2023-06-06 11:04:55

チポ
Member

Re: ルックアップ

Mozさん通りですが、、

テーブルAのレコードから見て、
テーブルBの関連レコードは複数あるのですよね。
そのうち一つのレコードを選んでその値を持ってくる。
これは、
その一つを選択する何かがないとFMには分かることでは無いです。
その何か、を照合に加えれば特定できますね。


両テーブルの各レコードは1対1で対応しているのでしょうか?
とすればどちらかのテーブルが不要になりますよ。

Offline

#4 2023-06-06 12:12:53

masayoshi
Guest

Re: ルックアップ

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に入力してあるものが 常に表示されます。

再度、誠に申し訳ありませんが、ご教示、よろしくお願いします。

#5 2023-06-06 12:16:23

Shin
Member

Re: ルックアップ

リレーションの設定を見直してみれば。

Offline

#6 2023-06-06 12:53:53

himadanee
Guest

Re: ルックアップ

見直すしかないですが
リレーションが=でなくXになってるってことも考えにくいし
それほど単純な状況なら間違える余地もあんまりないので、実際にはテーブルAやBのコピーがリレーショングラフ上で複数あるとかですかねえ?

#7 2023-06-06 13:49:38

masayoshi
Guest

Re: ルックアップ

himadaneeさん MOZさん ありがとうございます

himadaneeさん、テーブルA Bのコピーが複数ある についてですが
確かに、オリジナルのABをリレーションしよとすると 二つ以上は、、、ような 表示が出てきて
新たに名前を付けてリレーションするように求められました

#8 2023-06-06 13:52:31

masayoshi
Guest

Re: ルックアップ

masayoshi wrote:

himadaneeさん Shinさん ありがとうございます

himadaneeさん、テーブルA Bのコピーが複数ある についてですが
確かに、オリジナルのABをリレーションしよとすると 二つ以上は、、、ような 表示が出てきて
新たに名前を付けてリレーションするように求められました

#9 2023-06-06 14:06:53

チポ
Member

Re: ルックアップ

かかれたリレーションは
三つのリレーションですか?

Offline

#10 2023-06-06 14:18:25

masayoshi
Guest

Re: ルックアップ

チボ様
3つといいますか、テーブルA Bとも 患者IDが、患者マスターというテーブルのIDとリレーションしてあります。

よろしくお願いします

#11 2023-06-06 15:31:44

チポ
Member

Re: ルックアップ

新たにマスタテーブルが出てきましたが、
ここでは関係ないですよね。

リレーションは
テーブルA   テーブルB
          A = A
         and
          B = B
         and
          C = C
となっていますか?

複数のリレーションを定義していると、
リレーションマップグラフで
テーブルB2
のようになっている場合もありますね。
もしこうなっていたら、
ルックアップのソースフィールドも
  テーブルB2::D
として、テーブルオカレンスをそろえなければだめです。

参照する側のテーブルAはデフォルトのまま使わないと、
面倒なことになりますからご注意を。

Offline

#12 2023-06-06 21:30:23

himadanee
Guest

Re: ルックアップ

たとえばリレーションをコピーを作らずに
C==A==B==C
のようにつなぐとすると(右と左のCは同じもので、実際はABCで三角形になってる)
AからCを参照するのにどっちの経路で参照していいかわからなくなるので、「二つ以上は、、、ような 表示が出てきて」できなくなってるわけです。
この場合左右のCのどっちかはコピーを作ってリレーションすることになります。(AやBのコピーを作っても可能でしょうが)
C==A==B==C2
この状態でBのルックアップや計算でC2でなくCを使うと、意図しない結果になります。

#13 2023-06-07 10:51:08

masayoshi
Guest

Re: ルックアップ

himadaneeさん ご教示ありがとうございました。

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 568.21 KiB (Peak: 584.75 KiB) ]