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

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

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

You are not logged in.

Announcement

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


#1 2023-10-08 17:52:59

YUI
Guest

ユニークな値に重複が入力されたときの対処

フィールドに7桁のランダムな数字が入るようにしています

Middle("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", Round(Random * 61, 0)+1, 1)
&
Middle("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", Round(Random * 61, 0)+1, 1)
&
を7回繰り返します
確率的には、まずないと思いますが、重複しないように、ユニークな値、にチェックをいれています

重複したときにエラーがでて、フィールドに復帰する、などの選択肢がでますが
この処理ではなく、重複したら再度実行し重複しない値を書き込むにはどうしらたよいでしょうか?

#2 2023-10-08 18:07:01

YUI
Guest

Re: ユニークな値に重複が入力されたときの対処

ランダムな数字でななく
ランダムな英数字の間違いでした

#3 2023-10-08 20:02:44

鯖缶屋
Member

Re: ユニークな値に重複が入力されたときの対処

おそらく今は入力値の自動化の計算のところでご提示の計算値を入れていることでしょう。

端的に言えばスクリプトステップで回避出来ます。

Offline

#4 2023-10-08 22:33:22

Shin
Member

Re: ユニークな値に重複が入力されたときの対処

最大61の7個の数字を適当に決めます。その数字で、上の文字列からそれぞれ1文字抜き出します。
別に、7個の重複しない素数(2、31を除く)を決めておきます。
2番目の文字列は、最初の数字に各素数を加えた数字(62の剰余)を使います。
例えば
31,5,49,17,54,6,43
に対して、素数を
7,19,23,29,17,41,13
として、2回目は、
38,24,10,46,9,47,56
となります。
同じ文字が出てくるのは、62回で同じ数字になるので、元の数字に別の素数をそれぞれ加えて続けます。2重にすると、3600位生成できます。

Last edited by Shin (2023-10-08 23:11:16)

Offline

#5 2023-10-09 09:04:02

himadanee
Guest

Re: ユニークな値に重複が入力されたときの対処

スタンドアロンなら計算式内で重複判定してやり直せばいいですが、
共有ファイルだとレコード確定する時点で判定しないと確実とは言えないので、スクリプトで処理するかな。

それか、Get(UUID数字)を使う。
https://help.claris.com/archive/fm19/ja … umber.html
62文字から選ぶなら6ビット弱なので、192ビットあるから32桁まではこの関数1回で計算できるでしょう。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 560.37 KiB (Peak: 588.59 KiB) ]