Access FAQ

Access オートナンバーのリセットとは

Accessを使った業務システムでは、
オートナンバーをどう扱うかが、設計の成熟度を大きく左右します。

現場ではしばしば、

  • 番号が飛んでいるのが気になる
  • 年度が変わったので番号を振り直したい
  • 連番が管理番号だと思われている

といった理由から、
「オートナンバーをリセットできないか」という相談が出てきます。

しかしこのテーマは、
やり方だけを語ると、必ず事故につながる領域です。

この記事では、
Accessのオートナンバーについて
「リセットとは何を意味するのか」「なぜ原則すべきでないのか」「どう考えるべきか」
を、設計視点で整理します。


オートナンバーとは何のための仕組みか

一意な識別子を自動で付与する仕組み

Accessのオートナンバーは、
各レコードを一意に識別するための番号を自動で付与する仕組みです。

重要なのは、

  • 連番であること自体に意味はない
  • 欠番があっても問題ではない

という点です。

オートナンバーは、
「順番を管理する番号」ではなく、
「他と重ならないこと」だけが求められる番号です。


オートナンバーが設計上担っている役割

オートナンバーは、
主に 主キー として使われます。

主キーの役割は、

  • 他のテーブルから参照される
  • レコードを一意に特定する

ことです。

この役割は、
人が意識して管理するものではなく、
Accessに任せる前提で設計されます。


なぜ「リセットしたい」と思われるのか

番号が飛んでいるのが気になる

オートナンバーは、
レコードを削除すると欠番が発生します。

この欠番を見て、

  • 管理ができていないように見える
  • 数字がきれいでない

と感じる方は少なくありません。

しかし、
これは 業務番号と混同していること が原因です。


年度・期間で番号を揃えたくなる理由

もう一つ多いのが、

  • 年度が変わった
  • 期ごとに番号をリセットしたい

という要望です。

これも、
オートナンバーを「管理番号」として見ている
ことから生じます。


Accessで言う「オートナンバーのリセット」とは何か

実際に起きていること

Accessで「オートナンバーをリセットする」と言っても、
既存データの番号が振り直されるわけではありません

実際に起きているのは、

  • 次に採番される値が変わる

ただそれだけです。

過去のレコードに付与された番号は、
原則として変わりません。


内部的な仕組みの考え方

オートナンバーの管理は、
Accessの内部領域で行われています。

このため、

  • 人が自由に制御できるものではない
  • 設計で触る前提の仕組みではない

という理解が必要です。

「リセットできるかどうか」よりも、
そもそも触る対象ではない
という認識が重要です。


オートナンバーをリセットすると何が起きるか

既存データとの関係

オートナンバーをリセットしても、

  • 過去データの番号は変わらない
  • 表示上は何も変わらない

ように見えることがあります。

しかし、
ここで注意すべきなのは
将来のデータとの関係です。


リレーションシップへの影響

オートナンバーは、
他テーブルの外部キーとして使われていることがほとんどです。

不用意にリセットを行うと、

  • 参照関係が崩れる
  • 意図しない重複が起きる
  • 不整合が発生する

といったリスクが生じます。

これは、
後から気づいた時には修正が困難
という性質を持っています。


原則としてリセットすべきでない理由

オートナンバーは意味を持たせない番号

オートナンバーは、

  • 見せる番号ではない
  • 業務上の意味を持たせない

という前提で使うものです。

もし番号に意味を持たせたいのであれば、
それは 別の項目で管理すべきものです。


設計が崩れているサインになりやすい

「オートナンバーをリセットしたい」
という要望は、

  • 設計段階で整理できていない
  • 本来分けるべき概念が混ざっている

サインであることが少なくありません。

リセットは解決策ではなく、
設計の歪みが表面化した結果
であるケースがほとんどです。


例外的に検討されるケース

テスト環境・検証用データ

例外として考えられるのは、

  • 本番ではない
  • 検証・テスト用環境

の場合です。

この場合は、

  • 影響範囲が限定されている
  • 参照関係を破棄しても問題ない

前提で、
一時的にリセットを検討することがあります。


本番でどうしても必要な場合の考え方

本番環境で
「どうしても番号を揃えたい」
という場合は、発想を変える必要があります。

オートナンバーを触るのではなく、

  • 別の業務番号を設ける
  • 表示用番号を分離する

といった設計が現実的です。


オートナンバーと業務番号は分けて考える

表示用・管理用の番号設計

業務上必要なのは、

  • 見せる番号
  • 管理しやすい番号

であって、
オートナンバーではありません。

例えば、

  • 年度+連番
  • 種別+連番

といった番号は、
業務番号として別項目で管理します。


Accessで安全に実現する方法

Accessでは、

  • 採番用テーブル
  • 採番ロジック

を用意することで、
安全に業務番号を管理できます。

この設計を取ることで、

  • オートナンバーは触らない
  • 業務要件にも応えられる

という、
両立した構成が可能になります。


まとめ|オートナンバーは「触らない前提」の仕組み

オートナンバーは、

  • 連番を整えるための機能
  • 管理番号

ではありません。

データを一意に識別するためだけの仕組みです。

リセットを検討する前に、

  • なぜそうしたいのか
  • 本当に必要なのは何か

を整理することが、
Accessを長く安全に使うための第一歩です。

システムキューブの「Accessの移行変換、mdb・adpのバージョンアップ」について

システム開発・ホームページ制作会社|株式会社システムキューブ