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

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

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

You are not logged in.

Announcement

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


#1 2014-02-05 19:45:59

シュウ
Guest

ユニークな値について

どうぞよろしくおねがいいたします。

品番コードと色コードのフィールドを作ってます。
この二つのフィールドが全く同じ値、ユニークな値になることを禁止したいのですが
どのように設定したら禁止できるか御教授いただけませんでしょうか

#2 2014-02-05 20:05:23

Shin
Member

Re: ユニークな値について

「全く同じ値になることを禁止したい」 ですよね。

その2個のフィールドで自己リレーションを張り、リレーション先のレコードをカウントし、1以外を禁止すれば良いです。

Offline

#3 2014-02-06 09:11:16

チポ
Member

Re: ユニークな値について

リレーション先のレコードをカウントし、1以外を禁止すれば良いです

このリレーションでは、レコード確定前と確定後では判定が異なりますね。

リレーションを、自身と照合しないようにするか、
確定後の関連レコード数が2以上を判定する。
とかしないとダメでしょう。


別の方法
新たにテキストフィールドを作り、入力値の自動化で
  品番コード&色コード

として、このフィールドにユニーク制限をかける。

Offline

#4 2014-02-06 10:27:56

シュウ
Guest

Re: ユニークな値について

ありがとうございました。

チボさんに教えて頂いてます、別の方法で新たに作ったテキストフィールドでユニーク制限をかけたところ
エラー表示が確かに表示されます。
このエラーが出た場合、色コードのフィールドに移動して欲しいのですが新たに作成したフィールドに移動してしまいます。
これを解決するにはどのような方法がありますでしょうか。

#5 2014-02-06 12:00:09

チポ
Member

Re: ユニークな値について

エラーのフィールドに行っちゃいますよね。

他のフィールドに行くにはスクリプトが必要でないかな。

スクリプトで重複を判定して、重複なら色コードに移動。
として、
トリガが使えるのなら、色コードフィールドにトリガを設定。

トリガが使えないのなら、
レコード作成から二つのフィールド入力までをそのスクリプト内で実行すればいいでしょう。

Offline

#6 2014-02-06 13:26:44

tim
Guest

Re: ユニークな値について

二つのフィールドの入力用グローバルフィールド作る
それをリレーションして非グローバル側でレコード作成を許可
レイアウトにはグローバル以外は関連フィールドを配置
すると、グローバルに入れた時点で重複があれば既存レコードの内容が表示される。
表示されない時は何か入力すればレコードができる。
二つ以外フィールドがないと、あんまり意味無いかな。

#7 2014-02-06 13:50:10

Shin
Member

Re: ユニークな値について

ちょっと考え方を変えて、
品番を管理するテーブルを作っておきます。そこに色フィールドを複数作っておいて、クリックでリレーション経由でレコードを作っていく、

Offline

#8 2014-02-06 15:03:09

シュウ
Guest

Re: ユニークな値について

途中まで作ってしまったと言うこともあるのでtimさん、Shinさんには申し訳ないのですが、
チポさんの案でトリガで他のフィールドに移動するにはどのようにすれば移動出来るのでしょうか?

Get ( 最終エラー ) = 504 で試してみましたが期待通りにフィールドに移動してくれませんでした。

#9 2014-02-06 15:36:34

チポ
Member

Re: ユニークな値について

スクリプトの最初に
  エラー処理 オン
を入れて、
フィールド移動後に
  現在のスクリプト終了 結果=0
を入れます。

Offline

#10 2014-02-06 16:15:06

シュウ
Guest

Re: ユニークな値について

うまくいかないのですが、トリガは

色フィールドのOnObjectExitにたいして、スクリプトとして、エラー処理 オン→色フィールドに移動→現在のスクリプト終了 結果=0を設定しておくだけでいいと言うことですか?
他にも試しましたがうまく行かずこれでは別のカーソルにすら移動出来なくなりました。

#11 2014-02-06 16:20:01

Shin
Member

Re: ユニークな値について

私の後の提案は、途中まで作ってしまっても、別のテーブルから操作するので、関係無いですよ。

Offline

#12 2014-02-06 16:27:55

チポ
Member

Re: ユニークな値について

スクリプトステップを簡単に、、

  エラー処理 オン
  レコード確定
  If エラー?
   フィールドへ移動 元のフィールドへ
   現在のスクリプト終了 結果=0
  Else
   フィールドへ移動 次のフィールドへ
  End If

これを基本に。

警告音
ダイアログ表示
フィールド消去
などを加えてもいいですね。

Offline

#13 2014-02-06 18:21:22

シュウ
Guest

Re: ユニークな値について

色々と助けて頂きありがとうございました。
とりあえずチポさんのやり方でうまくいきました。
ありがとうございました。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.017 seconds, 9 queries executed - Memory usage: 521.92 KiB (Peak: 526.46 KiB) ]