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

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

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

You are not logged in.

Announcement

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


#1 2019-10-25 15:28:44

yuki3
Guest

リレーションでルックアップしている値に一致するものがない場合、新規値をレコードに更新したい(または追加したい)。

いつもお世話になっております。初心者なので説明の不備などありましたら申し訳ありません。
FM17Proを利用しています。現在、
「Parts」というテーブルの中に以下の3つのフィールドがあり、
・メーカー
・車名
・型式
「メーカー」を選ぶと「車名」の一覧が出てきて、「車名」を選ぶとそれらの「型式」が出てくるように
リレーションをかけ、ルックアップ設定をしています。
メーカーは値一覧でカスタム値で入力しているものをドロップダウンで選んでいますが
車名と型式は数が多いので、別のテーブル(Carlist)にエクセルから読み込んだ値一覧の
「フィールドの値を使用」+「次のテーブルから関連レコードのみを表示」の設定で
ドロップダウンから見えるようにしています。

車名を選んだとき、型式が空白のものもあるので、それらを編集したいのですが、
「Parts」テーブルの「車名」や「型式」フィールドから情報を入力をしたときに、
同時に「Carlist」テーブルの「車名」や「型式」にもその入力した値を追記することはできますでしょうか?
新規レコード作成などになるのかと思い「リレーションシップの編集」画面の
「このリレーションシップを使用して、このテーブルでのレコードの作成を許可」というのにはチェックを入れてみたのですが
Partsテーブルの編集はCarlistテーブルへ反映されませんでした。

元々そんなことができない、という質問でしたらすいません。
もし可能であれば、どのような設定をしなければいけないか教えていただけませんでしょうか。
どうぞよろしくお願いいたします。

#2 2019-10-25 16:23:33

koeda
Member

Re: リレーションでルックアップしている値に一致するものがない場合、新規値をレコードに更新したい(または追加したい)。

入力レイアウトに配置されている車名/型式は、Partsテーブルの車名/型式フィールドですよね?
リレーションを張ってレコード作成を許可しても、Carlistのフィールドを編集しなければレコードは作成されません。

解決方法としては…
方法1:Partslistで入力したメーカー/車名/型式の(未登録の)セットをスクリプトでCarlistへ転記する。
方法2:Carlistテーブルをポータルに表示して、ポータル内からレコードの追加・編集が行えるようにする。
でしょうか?

Last edited by koeda (2019-10-25 16:28:38)

Offline

#3 2019-10-25 17:29:16

Shin
Member

Re: リレーションでルックアップしている値に一致するものがない場合、新規値をレコードに更新したい(または追加したい)。

Cartlist には、すべての車名と形式データが入っているのでは。
これを、値一覧の対象にすればすればいいです。

Last edited by Shin (2019-10-26 16:00:28)

Offline

#4 2019-10-25 23:14:41

yuki3
Guest

Re: リレーションでルックアップしている値に一致するものがない場合、新規値をレコードに更新したい(または追加したい)。

Koeda様
アイデア頂きうれしく思います。
しかし、、、すいません。私には理解できないようで、、
ポータルというのを設定してみましたが動きが理解できませんでした。すいません。
もうひとつ、スクリプトを書く、というのは、アイデアが思いつかないのですが、
具体的には、フィールドの横にボタンとかを置いて
新規レコード作ってコピペする、というような動きをボタンを押すことで実行する、ようなイメージでよいのでしょうか?

Shin様
値一覧の対象に、という意味がちょっとよくわからなかったのですが、
現状、Partsの車名と型式はリレーション+ルックアップで値一覧の表示ができているように思いますが、それを対象にするというのが考え方がどうとらえればよいのかがわかりません。
もう少し教えていただけませんでしょうか。
すいません。

#5 2019-10-26 16:21:41

Shin
Member

Re: リレーションでルックアップしている値に一致するものがない場合、新規値をレコードに更新したい(または追加したい)。

具体的に、
「Parts」テーブルの「車名:Skyline」「型式:」
の時に、「型式:BNR32」と入力すると、Carlist の Skyline のレコードに、BNR32 が入るように、という事でしょうか。
または、「メーカー:日産」「車名:Skyline」には、BNR32 以外にもいろいろありますが、それを例えば、BNR33 を追加する、という事でしょうか。

Offline

#6 2019-10-27 08:34:34

yuki3
Guest

Re: リレーションでルックアップしている値に一致するものがない場合、新規値をレコードに更新したい(または追加したい)。

Shin様
おっしゃる通りです。
Carlistテーブルはその3行で構成されておりリレーションしているので
追加できると思ったのですが、そういう動きではないようですね。
質問がとぼけててすいません。

ボタンを作って、そのボタンを押したら、
フィールドコピーして、Carlistテーブルのレイアウトに飛んでペーストする、というのを3回繰り返すスクリプトにしてみました。

リレーションで新規レコード作成ができるのかと、勘違いで変な質問してしまい、すいません。
どうも失礼しました。
そしてアイデアを頂き感謝です。
ありがとうございました。

#7 2019-10-27 10:37:44

Shin
Member

Re: リレーションでルックアップしている値に一致するものがない場合、新規値をレコードに更新したい(または追加したい)。

リレーションを追加して、値一覧の選択肢以外が入力された時に、そのレコードを作成するトリガーを使って起動するスクリプトの作例です。
https://www.dropbox.com/s/66ej41v5ikd2a … 2.zip?dl=0

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 11 queries executed - Memory usage: 518.25 KiB (Peak: 523.16 KiB) ]