Accessのオートナンバー型フィールドとシーケンスを制する|採番リセット・飛び番防止・業務コード設計の実務手順とMOS試験対策





Accessのオートナンバー型フィールドとシーケンスを制する|採番リセット・飛び番防止・業務コード設計の実務手順とMOS試験対策

Accessのオートナンバー型フィールドとシーケンスを制する|採番リセット・飛び番防止・業務コード設計の実務手順とMOS試験対策

「オートナンバーをリセットしたい」「レコードを削除したら番号が飛んでしまった」「業務コードにオートナンバーを使って本当によいのか」――Accessでテーブルを設計していると、こうした疑問に直面することがよくあります。

オートナンバー型(AutoNumber)はAccessが自動的に連番を振ってくれる便利なデータ型ですが、採番の仕組みを正しく理解しておかないと、本番運用で想定外の挙動が発生します。本記事では、オートナンバーの設定手順から採番リセット・飛び番の対処・業務コード設計の判断基準まで、実務で役立つ知識を体系的に解説します。MOS Access試験の学習にも役立てていただけます。


Accessのオートナンバー型フィールドとシーケンスを制する|採番リセット・飛び番防止・業務コード設計の実務手順とMOS試験対策 - 解説

目次

この記事でわかること

  • オートナンバー型フィールドの仕組みとプロパティ設定手順
  • 採番をリセットする具体的な方法(圧縮修復・テーブル再作成)
  • 飛び番(欠番)が発生する理由と実務上の対処方針
  • 業務コード設計でオートナンバーを使うべきケース・避けるべきケース
  • 代替採番手法(DMax関数・テーブル作成クエリ)の概要
  • MOS Access試験でオートナンバーがどのように問われるか

オートナンバー型フィールドとは

オートナンバー型は、Accessがレコードを新しく追加するたびに自動で連番(またはランダム値)を割り当てるデータ型です。英語版インターフェースでは「AutoNumber」と表示されます。テーブルのデザインビューで「データ型」ドロップダウンから選択でき、一度設定したフィールドには手動で値を入力できません。

オートナンバー型の主な特徴

  • 自動採番:新規レコード追加時に自動で番号が振られる。手動入力は不可。
  • 一意性の保証:同じ番号が複数のレコードに付くことはない。
  • 削除後の番号は再利用されない:レコードを削除しても、その番号は後続のレコードに使われない(飛び番が発生する)。
  • 主キーに最適:重複しない一意の値を主キーに使いたいときの最も手軽な選択肢。
  • 読み取り専用:値が一度確定すると、後から変更することはできない。

フィールドサイズと「新規値」プロパティ

オートナンバー型には2つのフィールドサイズがあります。

フィールドサイズ 内容 主な用途
長整数型 整数の連番またはランダム整数 通常の主キー。約21億件まで対応。
レプリケーションID(GUID) グローバル一意識別子(128ビット) 複数DBのレプリケーション(同期)用途。

「新規値」プロパティでは「インクリメント」(1ずつ増加する連番)か「ランダム」(毎回異なる整数)を選べます。通常の業務DBでは「インクリメント」を選択します。

テーブルにオートナンバー型フィールドを設定する手順

以下の手順でデザインビューからオートナンバー型フィールドを追加できます。

手順1:テーブルをデザインビューで開く

ナビゲーションウィンドウで対象のテーブルを右クリックし、「デザインビュー」を選択します。新規テーブルを作成する場合は、「作成」タブの「テーブルデザイン」をクリックします。

手順2:フィールドを追加してデータ型を設定する

「フィールド名」列に「ID」などの名前を入力し、「データ型」列のドロップダウンから「オートナンバー型」を選択します。フィールド名は後から変更できますが、主キーフィールドの名前変更は関連するリレーションシップやクエリに影響するため、設計初期に確定しておくことを推奨します。

手順3:フィールドプロパティを確認する

画面下部の「フィールドプロパティ」エリアで次のプロパティを確認します。

プロパティ 推奨設定値 説明
フィールドサイズ 長整数型 通常はこちら。約21億件まで利用可。
新規値 インクリメント 1から始まり1ずつ増加する連番。
標題 (任意) データシートビューの列ヘッダー表示名。
インデックス はい(重複なし) 主キー設定と同時に自動で適用される。

手順4:主キーに設定する

オートナンバー型フィールドを選択した状態で、リボンの「デザイン」タブにある「主キー」ボタンをクリックします。フィールド名の左側にカギのアイコンが表示されれば主キーの設定完了です。主キーには一意インデックスが自動で付与され、検索・結合処理の速度が向上します。

手順5:テーブルを保存する

Ctrl+S を押してテーブルを保存します。初回保存時はテーブル名の入力を求めるダイアログが表示されます。

よくあるつまずき:オートナンバーが追加できない

既存のテーブルにオートナンバー型フィールドを後から追加しようとした際、「フィールドを変更できません」というエラーが出ることがあります。一般的に、すでに別のフィールドが主キーに設定されている場合や、リレーションシップが設定されている場合に制約が発生します。設計変更前には、テーブルのバックアップと既存のリレーションシップの確認を行ってください。

採番リセットの方法

テスト運用や初期データ整理が終わった後に「1から番号を振り直したい」というケースがあります。Accessのオートナンバーはデータベースエンジンが内部カウンターで管理しているため、Excelのように直接書き換えることはできません。以下の方法で対応します。

方法1:全レコード削除+データベースの圧縮修復(推奨)

最も確実な方法です。手順は次のとおりです。

  1. テーブルのすべてのレコードを削除します。データシートビューで Ctrl+A を押して全選択後、Delete キーを押すか、削除クエリ(DELETE FROM テーブル名;)を実行します。
  2. 「データベースツール」タブの「データベースの圧縮および修復」をクリックします。
  3. 圧縮修復が完了すると、次に追加したレコードのオートナンバーが1から始まります。

注意点:この方法はテーブル内のすべてのデータを削除します。参照整合性が設定されたリレーションシップがある場合、子テーブルのレコードが残っていると削除できないことがあります。先に子テーブル側を削除してから親テーブルを削除してください。

方法2:テーブル作成クエリを使ってデータを移し替える(想定例)

想定例として、既存データを保持しながら採番だけをリセットしたい場合の手順を示します。

  1. オートナンバーフィールドを除く全フィールドを対象にしたテーブル作成クエリ(Make Table Query)を実行し、データを新しいテーブルに移します。
  2. 元のテーブルを削除し、新テーブルにオートナンバー型主キーフィールドを追加します。
  3. テーブル名を元の名前に変更し、圧縮修復を実行します。

この方法は作業ステップが多いため、本番稼働前のデータ初期化時に使うのが現実的です。定期的に採番リセットが必要になる設計は、後述する業務コードの設計方針を見直すサインです。

方法3:追加クエリで最大値を調整する(上級)

データを削除せずにカウンターだけをリセットしたい場合、VBAからALTER TABLE文でシーケンスを制御する方法が知られていますが、Access標準のGUI操作では対応していません。通常の業務DBでは方法1または方法2を使用します。

採番リセットに関する重要な考え方

業務DBの主キーの目的は「各レコードを一意に識別すること」です。連番が途切れているかどうかは主キーの役割に関係しません。採番リセットが頻繁に必要になる設計は、ユーザー向けの業務コード(帳票番号・受注番号など)とオートナンバー(内部識別用主キー)の使い分けが適切でない可能性があります。

飛び番(欠番)が発生する仕組みと対処

「レコードを削除したら番号が1→2→4→5と飛んでしまった」という経験をお持ちの方も多いと思います。これはAccessの仕様どおりの動作で、意図的に設計されたものです。

飛び番が発生する3つのケース

ケース1:レコードを削除した場合

削除したレコードのオートナンバー値は、以後に追加されるレコードには再利用されません。データベースエンジンは削除されたIDが「使用済み」であることを内部的に記録しており、重複が起きないよう設計されています。

ケース2:入力をキャンセルした場合(ロールバック)

新規レコードの入力中に Esc キーを押すか、操作をキャンセルすると、その入力に割り当てられたオートナンバー値は破棄されます。次に追加するレコードには次の番号が振られ、飛び番になります。フォームの入力途中でキャンセルしても同様に発生します。

ケース3:データベースファイルが予期せず閉じた場合

Accessが強制終了したり、ネットワーク共有上のファイルへの接続が切断された場合も、採番カウンターが進んだまま保存されないことがあります。次回起動時に欠番が生じる場合があります。

飛び番への実務的な対処方針

オートナンバーの主キー値に「連続していること」を求めないのが正しい設計方針です。

もし帳票番号・受注番号・伝票番号のように、ユーザーが日常的に参照する連番が業務上必要な場合は、オートナンバーとは別に「業務コード」用のフィールドを設けます。オートナンバーをそのまま「○○番号」として画面に表示する設計は、飛び番が業務上のトラブルに発展しやすいため推奨しません。

場面 オートナンバーの扱い 対処方針
ユーザーが見ない内部ID 飛び番は無問題 対処不要。そのまま運用する。
帳票・伝票番号として使用 飛び番が業務問題になる 業務コード専用フィールドを別途設ける。
テスト・開発中 初期値に戻したい 全削除+圧縮修復でリセット。

業務コード設計:オートナンバーを使うべきケースと避けるべきケース

実務でのテーブル設計において、主キーをオートナンバーにするか、独自のコードにするかは重要な設計判断です。

オートナンバーが適しているケース

  • ユーザーが番号そのものを業務で使わない(主キーが画面に表示されない)場合
  • テーブル間の結合キーとして内部的にのみ使用する場合
  • 他のフィールドの組み合わせで自然キーが決まらない場合
  • 迅速なプロトタイプや小規模なデータ管理ツールを作る場合

オートナンバーを避けるべきケース(業務コードが必要なケース)

  • 受注番号・伝票番号・社員IDなど、ユーザーが日常的に参照・入力する番号が必要な場合
  • 「2026-0001」のように年度・部門を含むフォーマットが必要な場合
  • 欠番が経理・監査上の問題になる場合
  • 他のシステムと番号を連携させる場合

業務コードを自動採番する代替アプローチ(想定例)

想定例として、受注テーブルに「受注番号」フィールドを設けて自動採番する方法を示します。

アプローチA:DMax関数を使う(フォームのイベントに記述)

フォームの「更新前処理」イベントに次のような式を設定することで、現在の最大値に1を加えた値を自動入力できます。

=Nz(DMax("受注番号","受注テーブル"),0)+1

DMaxが0を返す(テーブルが空の場合)ときはNz関数で0に変換し、1が採番されるようにします。ただし、同時アクセスが発生するマルチユーザー環境では採番の競合が起きる可能性があるため、単独ユーザー運用のDBに向いた手法です。

アプローチB:採番管理テーブルを用意する

想定例として、「採番管理テーブル」に「伝票種別」「最終採番値」の2フィールドを持たせ、新規レコード追加のたびにVBAで「最終採番値」を読み出してインクリメントする方法もあります。レコードロックと組み合わせることで、マルチユーザー環境でも重複採番を防ぎやすくなります。

いずれのアプローチも「オートナンバー主キー(内部識別用)」と「業務コード(ユーザー向け表示用)」の2フィールドを分けて持つ設計が基本です。オートナンバーには一意性保証とリレーションシップの安定性を担わせ、業務コードには採番ルールの柔軟性を担わせることで、長期運用に耐えるDB設計になります。

圧縮修復とオートナンバーの関係

「データベースの圧縮および修復」は、Accessが断片化したファイルを整理してサイズを縮小するメンテナンス機能です。オートナンバーのリセットに使われることがありますが、本来の目的はファイルの最適化です。

圧縮修復でオートナンバーがリセットされる条件

圧縮修復を実行すると、テーブルが空の場合に限り、オートナンバーのカウンターが1に戻ります。テーブルにレコードが1件でも残っている場合は、カウンターは現在の最大値の続きから採番が続きます。「全件削除してから圧縮修復」という手順が必要な理由はここにあります。

定期的な圧縮修復の推奨

Accessのオプション設定で「閉じるときに圧縮する」を有効にしておくと、DBファイルを閉じるたびに自動で圧縮修復が行われます。長期運用するDBでは、ファイルサイズの肥大化を防ぐためにもこの設定を活用することを一般的に推奨します。設定場所は「ファイル」→「オプション」→「カレントデータベース」→「閉じるときに圧縮する」です。

MOS Access試験との関係

MOS Access 365試験では、テーブルの作成・管理に関する操作が出題範囲に含まれます。オートナンバー型はテーブル設計の基本要素のひとつとして、デザインビューでのフィールド追加・データ型選択・プロパティ設定・主キー設定の操作として問われます。

MOS試験で問われる主なオートナンバー関連操作

  • デザインビューでオートナンバー型フィールドを追加する
  • 「フィールドサイズ」プロパティと「新規値」プロパティを確認・変更する
  • オートナンバー型フィールドを主キーとして設定する
  • 既存テーブルのフィールドのデータ型を変更・確認する

分野別の出題数・配点は公表されていません。試験時間は50分、採点は1,000点満点です。合格点は公表されていませんが、550点~850点が目安とされています。受験料は改定されることがあるため、最新の金額は公式サイト(https://mos.odyssey-com.co.jp/exam/examfee.html)でご確認ください。

学習のポイント

MOS Access試験の対策では、テーブル・クエリ・フォーム・レポートの4つの主要オブジェクトをひとつずつ操作しながら学ぶのが効率的です。オートナンバーを含むテーブル設計はすべての起点になるため、最初に確実に理解しておくと、後のクエリ設計やフォーム作成の学習がスムーズに進みます。

実際に空のテーブルを作成し、オートナンバー型フィールドを追加して主キーに設定するまでの一連の操作を繰り返し練習しておきましょう。デザインビューとデータシートビューの切り替えも試験頻出操作です。

PR

改善Excel パフォーマンスを底上げする仕事改善・効率化テクニック

Accessと連携することの多いExcelの業務改善テクニックを網羅した一冊。データ集計・整形・自動化の視点を身につけると、Access設計の判断にも活きてきます。

まとめ

オートナンバー型フィールドは、Accessのテーブル設計において主キー設定を効率化する便利な機能ですが、仕組みを理解していないと「番号が飛んだ」「リセットできない」という問題に直面します。本記事のポイントを整理します。

  • オートナンバーは自動連番のデータ型で、内部的な一意識別に使う
  • 採番リセットは「全レコード削除→圧縮修復」が最も確実
  • 飛び番はAccessの仕様であり、主キーとして使う分には問題ない
  • ユーザーが見る業務コードにはオートナンバーをそのまま使わず、専用フィールドを設ける
  • MOS Access試験では、デザインビューでの型設定・主キー設定が出題範囲

テーブル設計の基本を押さえることは、MOS Access試験対策だけでなく、実務でのAccess活用そのものに直結します。まずは手元でテーブルを新規作成し、オートナンバー型フィールドを設定する操作を実際に試してみてください。


Accessのオートナンバー型フィールドとシーケンスを制する|採番リセット・飛び番防止・業務コード設計の実務手順とMOS試験対策 - まとめ

MOS試験の最新情報・学習ガイドはこちら

試験概要・出題範囲・受験申し込み手順など、MOS試験全般の情報は当サイトの各記事でも解説しています。目的に合わせた記事を活用して、効率よく合格を目指してください。


よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次