自動採番を考える|みどシステム工房
自動採番を考える
データを処理するときは、必ず何かしらの番号が付きます。
自動採番の方法について考えてみます。

連番

モニュメントバレー
【アメリカ合衆国アリゾナ州】


はじめに

Accessのテーブルには、オートナンバーという機能があります。

この機能は、データを入力すると自動的に1から重複されることなく採番されます。

特に採番にフォーマットがなければオートナンバーで採番される番号で十分ではないかと思いますが、現実的には、伝票番号など、必ず採番する規則があって、それに合った番号にしてほしいという要望が多いです。

規則のある連番の採番を考えます。

【AD】

連番に便利なDmax

連番は、数ケタの数字又は英数字で構成されることが多く、数ケタになります。

例えば、「パソコンレジ」で出力されるレシート番号は9ケタで、左から6ケタ目までは日付でそれに続いて3ケタの連番になります。

どのようにこの3ケタを採番するか考えます。

採番方法は、DMaxDLookup関数を使った採番が多いようです。

仕組みとしては、「関数を使って最大値を求めて、その値に1を加える」ものです。

普通の使い方ではこの方法で問題はないと思われますが、データ数が多くなるとレスポンスが悪くなることもあるようです。

「少しくらい処理時間がかかっても待てばいいのに」と制作者は思うこともありますが、ユーザがイラつくのがわかるので、レスポンスの良いシステムを作ることは大切なことです。

テーブルのオートナンバーで素早く採番

オートナンバーは、テーブルの機能にあります。

オートナンバーは、何かしらのデータが入力されると自動的に採番されるので、「パソコンレジ」ではレシートを印刷するときをトリガーにして採番しています。

このレシートの番号は、日が変わり新たにレジを開いたときにテーブルのオートナンバーをリセットして、1から採番できる仕組みになっています。

まとめ

テーブルのオートナンバーを使うことで、すべてのデータを参照せずに採番できるので、ストレスなく採番処理されます。

複数のレジを使うときは、レシート番号を重複させないちょっとした工夫が必要です。例えば、レジに番号をつけてレシート番号の先頭につけてあげれば重複することなくレシート番号が採番できます。

【AD】