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

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

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

You are not logged in.

Announcement

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


#1 2018-04-19 15:55:44

meme
Member

他の値の入力をした場合に、値一覧へ追加する方法

win7 fm15です。

値一覧にフィールド値を設定してAテーブルのaフィールド,bフィールド,cフィールドにポップアップメニューとして設定しています。
また値一覧用にBテーブルにdフィールド,eフィールド,fフィールドを用意しています。

aフィールド,bフィールド,cフィールドにポップアップメニューとして設定した値一覧にはdフィールド,eフィールド,fフィールドを設定しています。
またaフィールド,bフィールド,cフィールドはインスペクタで「他の値の入力を許可」にチェックを入れています。

自己リレーションを使用して
Aテーブル::a=Bテーブル::d
Aテーブル::a=Bテーブル::d and Aテーブル::b=Bテーブル::e
としているのでbフィールド,cフィールドは動的値一覧となっています。

aフィールドでその他を選択し、固有の値を入力した時、その値をdフィールドで検索して、
重複していなければBテーブルのレコードにaフィールドに入力した値を追加するにはどうすればいいでしょうか?

また同様の動作をbフィールド,cフィールドで行うのはどうすればよろしいでしょうか?

https://fm-aid.com/bbs2/viewtopic.php?id=1799
上を参考にしましたがうまくいかず困っています。
宜しくお願いします。

Offline

#2 2018-04-19 16:06:09

チポ
Member

Re: 他の値の入力をした場合に、値一覧へ追加する方法

> Aテーブル::a=Bテーブル::d
> Aテーブル::a=Bテーブル::d and Aテーブル::b=Bテーブル::e

これをリレーション1、2とします

値一覧が三つあって、
  1. Bテーブル::dフィールド の静的値一覧
  2. Bテーブル::eフィールド リレーション1の動的値一覧
  3. Bテーブル::fフィールド リレーション2の動的値一覧

ということですか?

Offline

#3 2018-04-19 16:08:26

meme
Member

Re: 他の値の入力をした場合に、値一覧へ追加する方法

チポ wrote:

> Aテーブル::a=Bテーブル::d
> Aテーブル::a=Bテーブル::d and Aテーブル::b=Bテーブル::e

これをリレーション1、2とします

値一覧が三つあって、
  1. Bテーブル::dフィールド の静的値一覧
  2. Bテーブル::eフィールド リレーション1の動的値一覧
  3. Bテーブル::fフィールド リレーション2の動的値一覧

ということですか?

そうです
分かりに辛くてすみません

Offline

#4 2018-04-19 16:47:26

チポ
Member

Re: 他の値の入力をした場合に、値一覧へ追加する方法

新たに三つのフィールドを照合するリレーションを作り、
三つのフィールドに入力した時点で関連レコードがなければ、
新規レコードにその三つの値を入力。

この考えでいいのでは。

Offline

#5 2018-04-19 16:54:31

meme
Member

Re: 他の値の入力をした場合に、値一覧へ追加する方法

すみません

三つのフィールドを照合するリレーション
とはどういうことなのでしょうか?

Offline

#6 2018-04-19 17:13:44

チポ
Member

Re: 他の値の入力をした場合に、値一覧へ追加する方法

Aテーブル::a=Bテーブル::d
  and
  Aテーブル::b=Bテーブル::e
  and
  Aテーブル::c=Bテーブル::f

このリレーションで関連レコードがなければ
新しい値、または新しい組み合わせがあるということですね


実際には、リレーションシップグラフで
Bテーブル 3
の様になりますかね。

Offline

#7 2018-04-19 17:47:37

meme
Member

Re: 他の値の入力をした場合に、値一覧へ追加する方法

チポ wrote:

Aテーブル::a=Bテーブル::d
  and
  Aテーブル::b=Bテーブル::e
  and
  Aテーブル::c=Bテーブル::f

つくってみましたが
"三つのフィールドに入力した時点で関連レコードがなければ"
このスクリプトが分かりません。

すみません教えて下さい。

Offline

#8 2018-04-19 18:03:12

チポ
Member

Re: 他の値の入力をした場合に、値一覧へ追加する方法

前記のリレーションの設定で、Bテーブルの新規レコード作成に許可を与えておきます。

以下の「Bテーブル」は新たなリレーションのテーブル名です。

スクリプト
  If [ not Count ( Bテーブル::d ) ]
   フィールド設定 [ Bテーブル::d ; Aテーブル::a ]
   フィールド設定 [ Bテーブル::e ; Aテーブル::b ]
   フィールド設定 [ Bテーブル::f ; Aテーブル::c ]
  End If

このスクリプトを cフィールド のスクリプトトリガ
  OnObjectExit
で実行します。

Offline

#9 2018-04-22 16:19:17

meme
Member

Re: 他の値の入力をした場合に、値一覧へ追加する方法

解決できました。
ありがとうございました。

Offline

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: 567.2 KiB (Peak: 586.86 KiB) ]