Access オートナンバーのリセットとは
Accessを使った業務システムでは、
オートナンバーをどう扱うかが、設計の成熟度を大きく左右します。
現場ではしばしば、
- 番号が飛んでいるのが気になる
- 年度が変わったので番号を振り直したい
- 連番が管理番号だと思われている
といった理由から、
「オートナンバーをリセットできないか」という相談が出てきます。
しかしこのテーマは、
やり方だけを語ると、必ず事故につながる領域です。
この記事では、
Accessのオートナンバーについて
「リセットとは何を意味するのか」「なぜ原則すべきでないのか」「どう考えるべきか」
を、設計視点で整理します。
オートナンバーとは何のための仕組みか
一意な識別子を自動で付与する仕組み
Accessのオートナンバーは、
各レコードを一意に識別するための番号を自動で付与する仕組みです。
重要なのは、
- 連番であること自体に意味はない
- 欠番があっても問題ではない
という点です。
オートナンバーは、
「順番を管理する番号」ではなく、
「他と重ならないこと」だけが求められる番号です。
オートナンバーが設計上担っている役割
オートナンバーは、
主に 主キー として使われます。
主キーの役割は、
- 他のテーブルから参照される
- レコードを一意に特定する
ことです。
この役割は、
人が意識して管理するものではなく、
Accessに任せる前提で設計されます。
なぜ「リセットしたい」と思われるのか
番号が飛んでいるのが気になる
オートナンバーは、
レコードを削除すると欠番が発生します。
この欠番を見て、
- 管理ができていないように見える
- 数字がきれいでない
と感じる方は少なくありません。
しかし、
これは 業務番号と混同していること が原因です。
年度・期間で番号を揃えたくなる理由
もう一つ多いのが、
- 年度が変わった
- 期ごとに番号をリセットしたい
という要望です。
これも、
オートナンバーを「管理番号」として見ている
ことから生じます。
Accessで言う「オートナンバーのリセット」とは何か
実際に起きていること
Accessで「オートナンバーをリセットする」と言っても、
既存データの番号が振り直されるわけではありません。
実際に起きているのは、
- 次に採番される値が変わる
ただそれだけです。
過去のレコードに付与された番号は、
原則として変わりません。
内部的な仕組みの考え方
オートナンバーの管理は、
Accessの内部領域で行われています。
このため、
- 人が自由に制御できるものではない
- 設計で触る前提の仕組みではない
という理解が必要です。
「リセットできるかどうか」よりも、
そもそも触る対象ではない
という認識が重要です。
オートナンバーをリセットすると何が起きるか
既存データとの関係
オートナンバーをリセットしても、
- 過去データの番号は変わらない
- 表示上は何も変わらない
ように見えることがあります。
しかし、
ここで注意すべきなのは
将来のデータとの関係です。
リレーションシップへの影響
オートナンバーは、
他テーブルの外部キーとして使われていることがほとんどです。
不用意にリセットを行うと、
- 参照関係が崩れる
- 意図しない重複が起きる
- 不整合が発生する
といったリスクが生じます。
これは、
後から気づいた時には修正が困難
という性質を持っています。
原則としてリセットすべきでない理由
オートナンバーは意味を持たせない番号
オートナンバーは、
- 見せる番号ではない
- 業務上の意味を持たせない
という前提で使うものです。
もし番号に意味を持たせたいのであれば、
それは 別の項目で管理すべきものです。
設計が崩れているサインになりやすい
「オートナンバーをリセットしたい」
という要望は、
- 設計段階で整理できていない
- 本来分けるべき概念が混ざっている
サインであることが少なくありません。
リセットは解決策ではなく、
設計の歪みが表面化した結果
であるケースがほとんどです。
例外的に検討されるケース
テスト環境・検証用データ
例外として考えられるのは、
- 本番ではない
- 検証・テスト用環境
の場合です。
この場合は、
- 影響範囲が限定されている
- 参照関係を破棄しても問題ない
前提で、
一時的にリセットを検討することがあります。
本番でどうしても必要な場合の考え方
本番環境で
「どうしても番号を揃えたい」
という場合は、発想を変える必要があります。
オートナンバーを触るのではなく、
- 別の業務番号を設ける
- 表示用番号を分離する
といった設計が現実的です。
オートナンバーと業務番号は分けて考える
表示用・管理用の番号設計
業務上必要なのは、
- 見せる番号
- 管理しやすい番号
であって、
オートナンバーではありません。
例えば、
- 年度+連番
- 種別+連番
といった番号は、
業務番号として別項目で管理します。
Accessで安全に実現する方法
Accessでは、
- 採番用テーブル
- 採番ロジック
を用意することで、
安全に業務番号を管理できます。
この設計を取ることで、
- オートナンバーは触らない
- 業務要件にも応えられる
という、
両立した構成が可能になります。
まとめ|オートナンバーは「触らない前提」の仕組み
オートナンバーは、
- 連番を整えるための機能
- 管理番号
ではありません。
データを一意に識別するためだけの仕組みです。
リセットを検討する前に、
- なぜそうしたいのか
- 本当に必要なのは何か
を整理することが、
Accessを長く安全に使うための第一歩です。
システムキューブの「Accessの移行変換、mdb・adpのバージョンアップ」について

