Tips

入力値が重複しているか調べる方法

日付2007/06/11
ID07-004
バージョン2004
プラットフォームMac / Win

インデックス付きフィールドのオプション「重複不可」にチェックを入れている時、重複した値を入力する事は出来ません。しかし「重複不可」を有効にせず、メソッドで入力値が重複しているか調べるようにしたいこともあるでしょう。しかし QUERY コマンドを使うとカレントレコードが変わってしまい、そのために正しい処理を継続できないかもしれません。

カレントセレクションやカレントレコードに影響を与えずに値を検索するためには、Find index key 関数を使います。このコマンドは非常に動作が速い事も特徴的です。例えば次のようなメソッドで簡単に調べられます。

$b_result:=((Find index key([Table]ID;[Table]ID)#-1) & (Find index key([Table]ID;[Table]ID)#Record number([Table]))

この例では、ブール変数 $b_result が真の時、重複した値があることを示します。この例はカレントレコードが保存される前でないと正しく動作しません。保存後に重複した値が存在するかどうかチェックするためには、別の方法を考えなくてはなりません。

参考リンク: