過去の桐井戸端BBS (桐ver.8)
16058 重複するはずがないのに絞り込みをして入力をしたら「KD1147:重複禁止エラー」が出てしまう JIMMY CLIFF 2002/05/21-11:00
皆さんお知恵を貸してください。
桐8sp6です

テーブルで実際に重複していないデータに対しエラーメッセージ
「KD1147:重複禁止項目の値が重複しています。」
がでます。

表の形は
[整理番号]・[診療月]・[名前]・[病名]・[費用]
としています。

で[整理番号]は
#直前値([整理番号],0)+1
という式を入れて自動入力としており、重複するはずがありません。
念のため 項目属性-制約-重複禁止 にチェックを入れています。

表に実際入力していく段階では、重複禁止のエラーは出ませんが
絞り込んで[診療月]を入力しようとした段階で
上記のエラーが出ます。
こうなると絞込みの解除が不可能で入力画面に戻れず、もちろん定義画面にも行けず
強制終了となります。

重複禁止のチェックをはずすとエラーが出なくなるとは思いますが納得できません。

なにか他に原因があるでしょうか?
お尋ねします。
16059 Re:KD1147:重複禁止エラー JIMMY CLIFF 2002/05/21-11:28
記事番号16058へのコメント

○わかりました。自分でレスします。
[整理番号]は
#直前値([整理番号],0)+1
という式を入れて自動入力としており、重複するはずがありませんが
絞り込んで他の項目である[診療月]を変更すると
[整理番号]も 1 から入力し直されるのですね
それで絞り込む前の番号と重複エラーとなっていました。
とりあえず自動連番の式を削除して手入力にして
重複禁止でいこうと考えます。

自動入力は無理でしょうかねぇ。

16060 Re:KD1147:重複禁止エラー natsu 2002/05/21-11:29
記事番号16058へのコメント
>表に実際入力していく段階では、重複禁止のエラーは出ませんが
>絞り込んで[診療月]を入力しようとした段階で
>上記のエラーが出ます。

絞り込んだ状態で行を追加するとき、[整理番号]は必ず末尾の数字になるわけではないので、
重複禁止エラーが出てくるのでは?

16065 Re:KD1147:重複禁止エラー うにん 2002/05/21-12:59
記事番号16059へのコメント
>自動入力は無理でしょうかねぇ。

普通は「カウンタ型」で間に合いますが。

16066 Re:KD1147:重複禁止エラー JIMMY CLIFF 2002/05/21-13:24
記事番号16065へのコメント
「カウンタ型」で間に合いますが。
>
初めて聞きました。ちょっと使い方を調べてみます。
ありがとうございました。

16068 Re:KD1147:重複禁止エラー JIMMY CLIFF 2002/05/21-13:27
記事番号16060へのコメント
>
>絞り込んだ状態で行を追加するとき、[整理番号]は必ず末尾の数字になるわけでは
>ないので、重複禁止エラーが出てくるのでは?
>
追加でなく修正するときに[整理番号]が 1 からになってたんですよ。
更新禁止にしたら直りました。
お手数かけました。
16108 Re:KD1147:重複禁止エラー 佐田 守弘 2002/05/22-23:19
記事番号16058へのコメント
JIMMY CLIFFさん
[整理番号]に#直前値([整理番号],0)+1
を設定しているとの事ですが、どの様に設定されていますか?
項目計算式で設定しているという事はないですよね。
項目初期値(挿入初期値か編集初期値)で設定されているのかと思いますが。

さて、既に#16060でnatsuさんが書かれている事とほぼ同じですが、
項目初期値で上記の計算式を設定すると、値が重複する事があり得ます。

これは次の様に考えると分かると思います。
仮に1〜100までのデータがあるとし、20〜60を選んだとします。
この段階で新しいレコードを追加すると、追加した行には61が設定されます。
そして絞り込まれている状態では重複は生じていません。
しかし絞り込みを解除すれば、既に61が存在している訳なので、重複禁止に
反するエラー状態になる訳です。

解決策は、カウンタ型の項目を使う事に尽きます。

佐田守弘(KS-00119)

戻る