みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
どうぞよろしくおねがいいたします。
品番コードと色コードのフィールドを作ってます。
この二つのフィールドが全く同じ値、ユニークな値になることを禁止したいのですが
どのように設定したら禁止できるか御教授いただけませんでしょうか
「全く同じ値になることを禁止したい」 ですよね。
その2個のフィールドで自己リレーションを張り、リレーション先のレコードをカウントし、1以外を禁止すれば良いです。
Offline
リレーション先のレコードをカウントし、1以外を禁止すれば良いです
このリレーションでは、レコード確定前と確定後では判定が異なりますね。
リレーションを、自身と照合しないようにするか、
確定後の関連レコード数が2以上を判定する。
とかしないとダメでしょう。
別の方法
新たにテキストフィールドを作り、入力値の自動化で
品番コード&色コード
として、このフィールドにユニーク制限をかける。
Offline
ありがとうございました。
チボさんに教えて頂いてます、別の方法で新たに作ったテキストフィールドでユニーク制限をかけたところ
エラー表示が確かに表示されます。
このエラーが出た場合、色コードのフィールドに移動して欲しいのですが新たに作成したフィールドに移動してしまいます。
これを解決するにはどのような方法がありますでしょうか。
エラーのフィールドに行っちゃいますよね。
他のフィールドに行くにはスクリプトが必要でないかな。
スクリプトで重複を判定して、重複なら色コードに移動。
として、
トリガが使えるのなら、色コードフィールドにトリガを設定。
トリガが使えないのなら、
レコード作成から二つのフィールド入力までをそのスクリプト内で実行すればいいでしょう。
Offline
二つのフィールドの入力用グローバルフィールド作る
それをリレーションして非グローバル側でレコード作成を許可
レイアウトにはグローバル以外は関連フィールドを配置
すると、グローバルに入れた時点で重複があれば既存レコードの内容が表示される。
表示されない時は何か入力すればレコードができる。
二つ以外フィールドがないと、あんまり意味無いかな。
ちょっと考え方を変えて、
品番を管理するテーブルを作っておきます。そこに色フィールドを複数作っておいて、クリックでリレーション経由でレコードを作っていく、
Offline
途中まで作ってしまったと言うこともあるのでtimさん、Shinさんには申し訳ないのですが、
チポさんの案でトリガで他のフィールドに移動するにはどのようにすれば移動出来るのでしょうか?
Get ( 最終エラー ) = 504 で試してみましたが期待通りにフィールドに移動してくれませんでした。
スクリプトの最初に
エラー処理 オン
を入れて、
フィールド移動後に
現在のスクリプト終了 結果=0
を入れます。
Offline
うまくいかないのですが、トリガは
色フィールドのOnObjectExitにたいして、スクリプトとして、エラー処理 オン→色フィールドに移動→現在のスクリプト終了 結果=0を設定しておくだけでいいと言うことですか?
他にも試しましたがうまく行かずこれでは別のカーソルにすら移動出来なくなりました。
私の後の提案は、途中まで作ってしまっても、別のテーブルから操作するので、関係無いですよ。
Offline
スクリプトステップを簡単に、、
エラー処理 オン
レコード確定
If エラー?
フィールドへ移動 元のフィールドへ
現在のスクリプト終了 結果=0
Else
フィールドへ移動 次のフィールドへ
End If
これを基本に。
警告音
ダイアログ表示
フィールド消去
などを加えてもいいですね。
Offline
色々と助けて頂きありがとうございました。
とりあえずチポさんのやり方でうまくいきました。
ありがとうございました。
Pages: 1
[ Generated in 0.017 seconds, 9 queries executed - Memory usage: 521.92 KiB (Peak: 526.46 KiB) ]