過去の桐井戸端BBS (桐ver.9)
27686 連結によって整理番号を生成しているがときどき重複禁止エラーが発生する katsuyoshi 2004/09/15-12:27
お世話になります。
整理番号を連結で生成しており、その項目は重複禁止にしています。
[支店番号]文字列(例001)・[年月日]日時(例04/09/15)
[入力番号]数値(例1)を連結し[整理番号]文字列(例0010409150001)
となり[整理番号]は重複禁止としています。
[入力番号]は#直前値を使いプラス1で生成しています。
[年月日]は文字列変換、[入力番号]は文字列変換で4桁としています。
入力フォームを伝票形式で作成し、年月日でグループ化をしています。
何件かのデータを入力し、閉じてから再度開き、明細追加(行追加)で
レコードを追加するとまれに重複禁止エラーが発生します。
私以外の人の操作で発生しますが、私の操作ではその現象が再現しません。
このような処理で発生原因として考えられるのはあるのでしょうか。
あるようでしたらアドバイスをいただきたいと思います。
よろしくお願いします。
27691 Re:連結による整理番号生成でエラーが発生する うにん 2004/09/15-15:51
記事番号27686へのコメント

>整理番号を連結で生成しており、その項目は重複禁止にしています。
>[支店番号]文字列(例001)・[年月日]日時(例04/09/15)
>[入力番号]数値(例1)を連結し[整理番号]文字列(例0010409150001)
>となり[整理番号]は重複禁止としています。
>[入力番号]は#直前値を使いプラス1で生成しています。

絞込みした状態で行追加すると重複しそうです。

27693 Re:連結による整理番号生成でエラーが発生する katsuyoshi 2004/09/15-21:04
記事番号27691へのコメント
うにんさんありがとうございます。

>絞込みした状態で行追加すると重複しそうです。

伝票フォームで年月日でグループ化をして開きますが特に絞り込みはしていません。
でもグループ化は絞り込みの部類に入るのでしょうか。
もしそうだとすると対応策はありますでしょうか。
もう少し教えて下さい。

27694 Re:連結による整理番号生成でエラーが発生する 佐田 守弘 2004/09/15-23:46
記事番号27693へのコメント
katsuyoshiさん
正確に確認してはいませんが、グループ化はグループ選択状態といって
一種の絞り込みの様な状態になります。

でも原因はこれではないですね。
最初の書き込みを見ると、[支店番号]、[年月日]、[入力番号]をそれぞれ
文字列化してつなぎ合わせて[整理番号]を作っていますね。
そしてこの[整理番号]を重複禁止にしています。

問題は、[入力番号]を#直前値関数を使って新しい番号を発生させている所にありそうです。
おそらくは項目初期値で行追加時に新しい番号を付けているのだと想定します。
複数の人が入力すると、タイミングの問題で、複数の人に同じ番号がついて仕舞う場合があり得ます。
なぜかというと、今、この[入力番号]が、0010まで使われていたとします。
Aさんが新しい行を追加すると、項目初期値式で0011が与えられます。
その直後、Aさんの入力が終了していないタイミングで、Bさんが新しい行を追加すると、
まだAさんの入力は終ってないので、0010までしか表には書き込まれていないので、
Bさんにも0011が与えられ、結果として重複します。

つまり現在の整理番号を生成する仕組みに本質的な問題があると思います。

●対応策
重複禁止エラーがでたら、入力番号に1を加えてみるのも1つの方法ではありますが、
本質的にここはカウンタ型のデータを使って処理すべきなのではないかと思います。
但し、カウンタ型項目を項目計算式の仲に参照できないので、この点をどうするかが課題になります。
項目置換では使えますが。

佐田守弘(KS-00119)
27696 Re:連結による整理番号生成でエラーが発生する 尾形 2004/09/16-07:16
記事番号27693へのコメント
共有して同時入力しているのですか?


27699 Re:連結による整理番号生成でエラーが発生する katsuyoshi 2004/09/16-10:34
記事番号27696へのコメント
尾形さん、佐田さんいつもお世話になっています。

>共有して同時入力しているのですか?
>
共有はしていません。
各支店でデータを作成し、TXTファイルに変換してメールで
本店に送り、本店で集約TBLに読み込んでファイルをまとめています。
その際に整理番号で照合をしているため、整理番号の重複は認めていません。
今回のことは支店での入力の際に発生しています。
たぶん不正な入力をしている可能性もありますが、対策があれば施したいなと思って質問しました。
佐田さんが言われているとおり[入力番号]をカウンター型にすれば重複はないのですが[整理番号]に[入力番号]を含められません。
やはり発生したとき現地での確認をするしか無いようです。
ありがとうございました。


戻る