過去の桐井戸端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) |