みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FM18、Win10
お忙しいところ恐れ入ります。
ルックアップを単一レコードのみに適用する方法があれば、教えていただきたいです。
テーブル:製品マスター
フィールド:品名No.、M数
例) 品名No. M数
A 10
B 20
C 30
テーブル:原稿データ
フィールド:注文No.、品名No.、M数(ルックアップ)
例) 注文No. 品名No. M数
a A 10
b A 10
c A 10
d B 20
e C 30
品名No.でリレーション
注文No.はユニーク、同じ品名No.について複数の注文No.があります。
M数について、abは10のままで、cのみ15に変更したいときに、
①原稿データのcを15に変更して、ルックアップをすると10に戻ってしまいます。
②製品マスターのAを15に変更して、ルックアップをするとabcともに15になってしまいます。
単一の注文No.のみにルックアップをかけるか、計算値を利用して単一の注文No.のみに適用するような方法はないのでしょうか?
それとも、他に何か良い方法はないでしょうか?
>M数について、abは10のままで、cのみ15に変更したいときに、
これは、「マスターとは違う値にしたい」わけなので、ルックアップは関係なく単にcの数値を修正すればいいのでは。
>①原稿データのcを15に変更して、ルックアップをすると10に戻ってしまいます。
データを入れた後でルックアップするというのがおかしいです。「再ルックアップ」するなら、修正したデータが戻るのは当然(マスターの値に戻したいときに実行する操作)です。
再ルックアップの動作どおりです。
何をしたいのかよくわかりませんが、原稿データがその順で時系列で作られているのでしたら、方法はあります。
各テーブルに作成日データを持たせておき、変更ごとに新しいレコードを作っていきます。(製品マスター側は、設定日になるかもしれません)
原稿データ 製品マスター
品名No.、 = 品名No.、
作成日 ≥ 設定日
というリレーションを張り、製品マスター側を設定日で降べきにソートしておきます。原稿データのレイアウトで、製品マスター::M数 を参照すればいいでしょう。
Offline
himadanee様、Shin様
ありがとうございます。
説明不十分で申し訳ございません。
やりたいことは、cが15になっても、abは10のままとしておきたいです。
cの注文のみ品名No.は同じですがM数が異なっていた場合に、製品マスターは変更せず、かつabは製品マスターのまま10で変更したくないです。
また、簡素化のためシンプルな例としましたが、例えば下記のように、テーブルの製品マスターにも原稿データにも材料名というフィールドもあった場合に、
材料名はルックアップしたいがM数はルックアップしたくない次のような場合があります。
①誤って”あ”を消去してしまった場合
②当初は材料名が不明であったため空欄にしていたが、原稿データを入力した後に判明したため、
cのみを15にした後に、製品マスターに”あ”を入力し、abcに”あ”のみをルックアップしたいが、10までルックアップされてしまい、
cも10に戻ってしまうことを避けたいです。
テーブル:製品マスター
フィールド:品名No.、M数 、材料名
例) 品名No. M数 材料名
A 10 あ
B 20 い
C 30 う
テーブル:原稿データ
フィールド:注文No.、品名No.、M数(ルックアップ)、材料名
例) 注文No. 品名No. M数 材料名
a A 10 あ
b A 10 あ
c A 10 あ ←M数15としたい
d B 20 い
e C 30 う
品名No.でリレーション
注文No.はユニーク、同じ品名No.について複数の注文No.があります。
M数のみを、自動入力の計算式(上書き禁止)にしておけばいいようです。15にしたければ、原稿側で15に手入力。
Last edited by Shin (2024-01-24 12:58:23)
Offline
方法は色々あるでしょうけど、
>材料名はルックアップしたいがM数はルックアップしたくない
材料名を全置換します。
>次のような場合
空欄のレコードだけを修正するケースなので、空欄を検索してから全置換します。
間違えて消去ならそのレコードだけ、マスタの修正なら修正したレコードから関連レコードへ移動かマスタの主キーの値で検索
ルックアップだとルックアップしたいフィールドでなく照合フィールドを指定するので、同じリレーションのフィールドは全部ルックアップしますので、そういうケースでは使えませんね。
M数、材料名
どちらも別々に再ルックアップしたい。
ならば、
別リレーションにすればいいので、
原稿テーブルで品名No.を入力する計算フィールドを作り、
これでリレーション、どちらかのルックアップをこちらに変更。
再ルックアップの際に、どちらをするのか明確にする必要が有りますね。。
Offline
ああ、
> ルックアップを単一レコードのみに適用
って書いてますね。
1レコードのみなら、
製品マスタの参照フィールドの値を入力すればいいことでしょう。
スクリプトにすればフィールドクリックだけで出来ますね。
Offline
Shin様、himadanee様、チポ様
大雪でバタバタしておりました。
ありがとうございます。
色々な方法があることが良く分かりました。
例は簡素化しておりまして、実際には、フィールドが沢山ありますので、
皆様に教えていただいた方法をそれぞれのフィールドに適した方法で実施したいと思います。
心から感謝申し上げます。
Pages: 1
[ Generated in 0.010 seconds, 11 queries executed - Memory usage: 531.38 KiB (Peak: 551.91 KiB) ]