2019.04.10
2019.05.01
はじめに
Accessのテーブルには、オートナンバーという機能があります。
この機能は、データを入力すると自動的に1から重複されることなく採番されます。
特に採番にフォーマットがなければオートナンバーで採番される番号で十分ではないかと思いますが、現実的には、伝票番号など、必ず採番する規則があって、それに合った番号にしてほしいという要望が多いです。
規則のある連番の採番を考えます。
【AD】
連番に便利なDmax
連番は、数ケタの数字又は英数字で構成されることが多く、数ケタになります。
例えば、「パソコンレジ」で出力されるレシート番号は9ケタで、左から6ケタ目までは日付でそれに続いて3ケタの連番になります。
どのようにこの3ケタを採番するか考えます。
採番方法は、DMaxやDLookup関数を使った採番が多いようです。
仕組みとしては、「関数を使って最大値を求めて、その値に1を加える」ものです。
普通の使い方ではこの方法で問題はないと思われますが、データ数が多くなるとレスポンスが悪くなることもあるようです。
「少しくらい処理時間がかかっても待てばいいのに」と制作者は思うこともありますが、ユーザがイラつくのがわかるので、レスポンスの良いシステムを作ることは大切なことです。
テーブルのオートナンバーで素早く採番
オートナンバーは、テーブルの機能にあります。
オートナンバーは、何かしらのデータが入力されると自動的に採番されるので、「パソコンレジ」ではレシートを印刷するときをトリガーにして採番しています。
このレシートの番号は、日が変わり新たにレジを開いたときにテーブルのオートナンバーをリセットして、1から採番できる仕組みになっています。
まとめ
テーブルのオートナンバーを使うことで、すべてのデータを参照せずに採番できるので、ストレスなく採番処理されます。
複数のレジを使うときは、レシート番号を重複させないちょっとした工夫が必要です。例えば、レジに番号をつけてレシート番号の先頭につけてあげれば重複することなくレシート番号が採番できます。
【AD】