過去の桐井戸端BBS (桐ver.8) |
5510 | 連番中の欠番の検索について | きりもみ | 2000/04/11-23:55 |
2回目の投稿です。よろしくお願いいたします。 新規行のデータを入力した際、最大値を検出し、+1した連番を入力していますが、 後に不要行を削除したりして、欠番が生じています。 単純すぎてすみませんが、その欠番を検索するにはどうしたらよいでしょうか。 | |||
5511 | Re:連番中の欠番の検索について | Ogo | 2000/04/12-00:25 |
記事番号5510へのコメント 判定する連番項目を[連番]とします。 1.[Temp]という仮項目を作成します。[連番]と同等の数値項目です。 2.[連番] 項目で 昇順 の 並べ替え(整列)させます。 3.[Temp]で 項目置換 を行ないます。 計算式は 【 #直前値([連番],0)+1 】 4.[Temp]で 絞り込み(選択) → 計算式 で 計算式は 【 <>[連番] 】 これで選択された [Temp] の値は全て欠番です。 (正確に言えば、[Temp]以上、[連番]未満の数値が全て欠番です) 欠番が2つ以上連続した場合には、連続した数値の最小値しか画面上に 表示されないのが難点ですが。 これで満足できますか? もっと自動化したいですか? | |||
5516 | Re:連番中の欠番の検索について | 宮城 | 2000/04/12-09:25 |
記事番号5510へのコメント 正直に言います。自分で忘れてるんだから世話はない。(^^;; 過去ログにもありました。 http://www.fuku3.com/~habata/kbbs/kakov7/01887.htm | |||
5517 | Re:連番中の欠番の検索について | Ogo | 2000/04/12-10:08 |
記事番号5511へのコメント >これで選択された [Temp] の値は全て欠番です。 >(正確に言えば、[Temp]以上、[連番]未満の数値が全て欠番です) >欠番が2つ以上連続した場合には、連続した数値の最小値しか画面 >上に表示されないのが難点ですが。 もうちょっと拡張して、欠番全てが容易に判別できるようにしてみましょうか。 1.追加で[欠番]項目(文字列型)を新設します。 2.[連番] 項目で 昇順 の 並べ替え(整列)させます。 3.[欠番]で 項目置換 を行ないます。計算式は 【 #通貨文字列(#直前値([連番],0)+1,””) 】 4.[欠番]で 項目置換 を行ないます。計算式は 【 #条件選択([欠番]=#通貨文字列([連番],””),"", [欠番]=#通貨文字列([連番]-1,””),[欠番], 1,[欠番]+” 〜 ”+#通貨文字列([連番]-1,””)】 5.[欠番]で 絞り込み(選択) → 計算式 で計算式は 【 <>#未定義 】 画面上で見るなり、[欠番]項目のみを印刷すれば、活用できるかな? 上記 2.〜5.を履歴に登録しておけば、いつでも復元できます。 なお、[連番]項目が文字列型の場合、3.と4.で[連番]となっている部分は 全て #数値([連番]) に置き換えます。 ところで、これらの作業を行なう前に [連番] 項目に重複がないことを確認している (もしくは、重複入力が出来ないように索引を定義している)のでしょうねぇ? | |||
5520 | Re:連番中の欠番の検索について | きりもみ | 2000/04/12-22:11 |
記事番号5517へのコメント 索引は定義してはいませんが、[連番] 項目に重複がないことは確認しております。 やはり1項目を追加作成するしかないのでしょうね。[連番]の中でのみ抽出することを考えていました。 職場(60人程度)では、プレインストールの為もあって、Accessを使う人しかいない中、 唯一、桐v8が大好きで使っており、このサイトを見つけたときは本当にうれしかったです。 どうもありがとうございます。今後ともよろしく! | |||
5521 | Re:連番中の欠番の検索について | Ogo | 2000/04/12-23:19 |
記事番号5520へのコメント > やはり1項目を追加作成するしかないのでしょうね。 >[連番]の中でのみ抽出することを考えていました。 項目置換の計算式に #直前値 関数を使えるならば、項目追加は不要なんですけどね。 なお、本来の正統的な方法としては 1.別の TBL を新規作成する(例えば【 欠番.TBL 】とします)。 必要なのは1項目のみ、[連番](数値型)でいいでしょう。 本来の元表の[連番]と同じ形式にします。 2.本来の元表での[連番]の最大値を求めます。 3.欠番.TBL の[連番]が1から2.で求めた最大値に至るまでの連番になる ように行を追加。 4.欠番.TBL を併合・選択 で 元表の[連番]と 欠番.TBL の[連番]で付き合わせ。 5.補集合を取れば、これが本当の欠番です。 このやり方ならば、元表に別項目を追加する必要はないし、元表のデータが 大量でも、項目置換による膨大なタイムロスが無くなるんですけどね。 問題は上記 3.の部分なんです。一括処理を組むことが出来れば簡単なものなのですが。 わざわざ一括処理を組んで、この掲示板に書き込むような気持ちには(私は)なれない。 なお、この「併合・選択・補集合方式」を使う場合、元表にも 欠番.TBL にも 両方に [連番]昇順・重複禁止 の索引を作っておけば、併合処理速度が圧倒的に短縮されます。 | |||
5559 | Re:連番中の欠番の検索について | きりもみ | 2000/04/15-17:20 |
記事番号5521へのコメント Ogoさん No.5521「Re:連番中の欠番の検索について」で回答いただきありがとうございました。 早速、ご指摘のように作成し、[欠番.tbl]を作ってみました。見事に絞り込めました。 これを例題に今後も勉強いたします。ありがとうございました。 |