過去の桐井戸端BBS (桐ver.8)
9717 フォームでの重複禁止をメッセージボックスで表示したい MAO 2001/02/08-15:36
表定義でコード番号の項目属性で重複禁止にしています。

このままフォームで追加、訂正した場合、当然コード番号を追加、訂正したときに重複コードの登録をしようとした場合、
下記のように重複禁止のエラー表示がでますが、

 KD1147重複禁止項目の値が重複しています。

もう少しわかりやすくメッセージボックスを使ってその後の処理等を表示させるようにしたい思いイベント中に


 条件 (#項目属性(#項目番号("コード番号"),19) メッセージボックス・・・・
と定義してみましたが、うまくいきません。

 どのようにしたらいいのか教えて下さい。

9745 Re:フォームでの重複禁止表示 悲しげ 2001/02/10-17:56
記事番号9717へのコメント
どもっ、MAOさん

>表定義でコード番号の項目属性で重複禁止にしています。
>このままフォームで追加、訂正した場合、当然コード番号を追加、訂正したときに
>重複コードの登録をしようとした場合、下記のように重複禁止のエラー表示がでま
>すが、
> KD1147重複禁止項目の値が重複しています。
>もう少しわかりやすくメッセージボックスを使ってその後の処理等を表示させるよ
>うにしたい思いイベント中に
> 条件(#項目属性(#項目番号("コード番号"),19) メッセージボックス・・・・
>と定義してみましたが、うまくいきません。

どなたからもコメントが付かないようなので、おそらく無理なんじゃないでしょうか。少なくとも私には判りません。

#項目属性関数の19属性の返り値は、表定義における「重複値」の設定が「許可」か「禁止」か、
そのどちらかの文字列を返すだけのことでしょうから、上記条件判断は全く的外れでしょうね。(^^;)

一般的なことを云えば、コードを新規登録するのは、あるコード値が既存でない場合に限りなのではないでしょうか?
既存かもしれないコードを先ず新規登録してみて……ではなく、順番としては(未登録かもしれないとしても)
先ずは登録済みであろうと想定して処理しようとした際に、存在していないことが判明する。
その結果、次なる段階として新規にコード登録に入る、と云うのが実務上では通常の順序になるはずだと思います。

どうしても新規登録を先にしたければ、例えば「キー入力」等で値を変数に受けておき、
そのコード値を検索させて、存在すれば既存(必要なメッセージ付き)、
存在しなければ行追加して新規登録に入る、と云う組み立て方になろうかと思います。
うまく使えば、既存コードの訂正処理と新規登録の兼用も可能とか。(あくまで一例)

なお、隠しコマンドで「エラー処理」なんてのがあるらしく、
それを使えば、桐デフォルトのエラーメッセージを出さなくする方法もあるかもしれません。
が、私はよく知らないことと、やはり上述の方法の方が生産的だと思います。

9787 Re:フォームでの重複禁止表示 MAO 2001/02/13-09:37
記事番号9745へのコメント
悲しげさん。ありがとうございます。

 #項目属性の19の返り値が許可、禁止であることは、投稿した後にわかりました。
 マニュアルで「重複値」って書いてあったのでてっきり重複している値が帰ってくると思っていました。(*^_^*)

 悲しげさんのコメントをもとにもう一度考え直してみます。

戻る