概要
| この記事の結論 Accessのオートナンバーは、レコードを区別するIDを自動で付けるデータ型です。一般的な長整数の増分設定は主キーに適していますが、削除や入力取消しなどで欠番が生じるため、件数や欠番を許さない伝票番号には使いません。この記事では設定手順から、数値型の外部キーとの関係、商品コード・表示順との分離、インポート時のID管理まで解説します。見た目を整えるために既存IDを振り直さず、用途に合った番号設計を選べるようにします。 |
この記事でわかること
- オートナンバーとは、テーブルのレコードに識別用の値を自動で割り当てるAccessのデータ型です。
- オートナンバー型の主キーを設定する手順
- 商品コードと伝票番号と表示順を分ける
- リセットやインポートの前に確認すること
この記事の主な内容
- オートナンバーはレコードを識別するための値
- オートナンバー型の主キーを設定する手順
- 欠番と番号の飛びを正しく判断する
- 主キーと外部キーを組み合わせる
- 商品コードと伝票番号と表示順を分ける
- リセットやインポートの前に確認すること
- 業務で使う前の確認とまとめ
- よくある質問
想定読了時間:約15分~20分
1 オートナンバーはレコードを識別するための値
オートナンバーは、商品や顧客などのレコードを区別するために、Accessが値を割り当てるデータ型です。よく使う「長整数・増分」の設定では新規登録に伴って値が増えます。ただし、欠番のない連番や現在の行番号を保証する機能ではありません。
例えば商品名が同じ商品を2件登録しても、商品IDが異なれば別の商品として管理できます。このIDを受注明細に保存すると、「どの商品を注文したか」を後から正しく参照できます。名前の表記や一覧の並び順が変わっても、対応するIDは変えずに保持します。
主キーとの違い
主キーは、テーブル内のレコードを一意に特定するための役割です。オートナンバーは値を自動生成するデータ型なので、両者は同じ言葉ではありません。オートナンバー型のフィールドに主キーを設定して使う構成がよく採られます。主キーには、条件を満たす別の型や複数フィールドも使えます。

| 知りたいこと | 使うもの | 理由 |
|---|---|---|
| どの商品か | 商品IDなどの主キー | 名前や順番に依存せず識別する |
| 何件あるか | Countによる集計 | 削除や抽出条件を含めた件数が分かる |
| 何番目に見せるか | 表示順と並べ替え | 用途ごとに表示位置を変えられる |
2 オートナンバー型の主キーを設定する手順
最初は練習用の空テーブルで設定を確認します。既存テーブルに別の主キーがある場合、すぐに置き換えないでください。そのキーを使うリレーションシップ、クエリ、フォーム、CSV連携などを確認してから変更計画を立てます。
新しい商品テーブルを作る例
1. データベースのコピーを作り、作業用ファイルを開きます。分割構成ではデータ保存先のバックアップも確保します。
2. [作成]から[テーブルデザイン]を開き、フィールド名を「商品ID」、データ型を[オートナンバー型]にします。
3. フィールドの行を選び、[主キー]を設定します。左端に鍵のマークが付いたことを確認します。
4. フィールドプロパティで[フィールドサイズ]を[長整数型]、[新規レコードの値]を増分に相当する設定へ合わせます。日本語表記は版によって異なります。
5. 「商品コード」と「商品名」を短いテキスト型で追加し、テーブル名を「T_商品」として保存します。
6. データシートビューで商品コードと商品名を2件入力し、別の行へ移動して保存します。商品IDを直接入力せずに値が付くことを確認します。
データシートから新しいテーブルを作ると、Accessが「ID」という主キーを用意する場合があります。既にある場合は、そのフィールドを確認して利用します。ID欄に「新規」などの表示があっても、通常は採番前の表示です。商品名などの入力対象へ進みましょう。
増分以外の設定もある
オートナンバーにはランダムな値を使う設定などもあります。そのため「必ず正の整数が1ずつ増えるデータ型」とは言い切れません。本記事の操作例は一般的な長整数・増分を前提とします。既存システムの設定を見ずに一括変更すると、外部キーや連携先との前提が合わなくなるおそれがあります。

3 欠番と番号の飛びを正しく判断する
途中の番号が抜けても、それだけでデータ破損とは判断できません。レコードを削除した場合のほか、入力を開始して採番された後に登録を取り消した場合などにも番号が消費されることがあります。登録操作と採番の状態によって結果が変わるため、欠番だけから「誰かが削除した」と断定しないことが大切です。
最大IDと件数が一致しない例
商品IDが101、102、104の3件なら、最大IDは104ですが件数は3件です。欠番を埋めるために104を103へ変える必要はありません。受注明細や外部CSVが104を参照している場合、番号変更によって別のレコードとの対応を壊す可能性があります。
件数を確かめたい場合は、[作成]→[クエリデザイン]→[SQLビュー]で次の選択クエリを作成できます。「T_商品」は先ほどのテーブル名です。SQLビューへ貼り付けてデータシートビューに切り替えると、件数を1行で確認できます。
SELECT Count(*) AS 商品件数
FROM [T_商品];
このSQLは全レコードを数えます。販売中の商品だけ知りたい場合は販売状態などの条件を別途指定します。「一覧には3件しか見えないのにテーブルには10件ある」という場面では、IDより先にフィルターやクエリの抽出条件を確かめます。
調査が必要な症状
欠番だけなら設計上許容できても、重複キーエラーが続く、取込後に親子の対応が違う、採番値が想定外に大きく変わった場合は原因を確認します。直前のインポートや追加クエリ、採番設定、対象ファイルを記録し、コピー環境で再現させます。番号を振り直して症状だけ隠す方法は避けます。

4 主キーと外部キーを組み合わせる
親の商品IDが長整数のオートナンバーなら、子の受注明細で参照する商品IDは通常「数値型・長整数型」にします。子の行でも独立したオートナンバーを使うと、新しい番号が付くだけで、選んだ商品のIDを表すことにはなりません。
| テーブル | フィールド | 型と役割 |
|---|---|---|
| T_商品 | 商品ID | オートナンバー型の主キー |
| T_受注明細 | 明細ID | オートナンバー型の主キー |
| T_受注明細 | 商品ID | 数値型の長整数。T_商品の商品IDを保存 |
同じ商品を複数回注文できるので、子側の商品IDには重複する値が入ります。一方、明細IDは明細そのものを区別します。親の商品IDと子の明細IDが同じ数字である必要はありません。どのレコードを識別するキーなのかをフィールドごとに説明できる状態にします。
関連付けを確かめる
[データベースツール]の[リレーションシップ]で、親の商品IDと子の商品IDを関連付けます。参照整合性は、存在しない親IDを子へ登録するなどの不整合を防ぐ仕組みです。既存の子データに親のないIDがあると設定できないため、移行前に不一致を確認します。
参照整合性を使う場合も、連鎖削除は別の判断です。商品を削除したときに受注明細まで消してよいかは業務によって異なります。オートナンバーの設定と一緒に、意味を確認せず有効にしないでください。

オートナンバーの設定や運用で困っている場合は
まずはコピー環境で本記事の手順を確認してください。既存IDと伝票番号の整理、複数人採番、データ移行時のキー対応など、影響範囲の判断が難しい場合は、Accessの教科書のお問い合わせフォームから状況をご相談いただけます。使用中の版、対象の画面やテーブル、再現手順を整理すると、相談内容が伝わりやすくなります。
5 商品コードと伝票番号と表示順を分ける
変更したくなる番号は、識別IDから分けると運用しやすくなります。例えば商品IDは内部の関連付け、商品コードは利用者や取引先への表示、表示順は商品一覧での並べ方に使います。商品コードに先頭の0やハイフンを含めるなら、短いテキスト型が適します。
| 番号の目的 | 例 | 設計上の扱い |
|---|---|---|
| 内部の識別 | 商品ID 104 | 原則として変更しない |
| 業務上の識別 | 商品コード A-00104 | 重複可否と変更時の扱いを決める |
| 年度別の伝票管理 | 2026-000123 | 採番単位、確定時点、取消しを管理 |
| 一覧の順序 | 10、20、30 | 並べ替え専用の数値を保存 |
DMaxに1を足すだけでは同時登録に弱い
「現在の最大番号+1」を読む処理を2台のPCが同時に行うと、両方が同じ次番号を得る可能性があります。また、最大番号のレコードを削除すると過去に使った番号を再利用する設計にもなり得ます。重複や再利用を許さない番号に単純なDMaxだけを使うのは不十分です。
欠番を管理したい伝票番号では、内部IDを残したまま専用の採番管理を設けます。番号の確定を登録開始時にするか承認時にするか、取消した番号をどう記録するか、同時処理をどう制御するかを決めます。一意インデックスやトランザクション、競合時の再試行も含めた設計が必要です。

6 リセットやインポートの前に確認すること
既存業務データのIDを見た目だけの理由でリセットしないことが基本です。練習データの番号を1から試したい場合は、新しい練習用データベースとテーブルを作る方が、関連付けへの影響を持ち込まずに試せます。本番を削除して番号だけ整える作業とは分けて考えます。
取込時は元のIDを残すか決める
追加クエリでオートナンバー列を追加先の項目から外すと、追加先で新しい値を付ける運用にできます。元のIDを明示して移す場合は、一意性や既存IDとの衝突を事前に調べます。通常の画面入力とデータ移行の追加処理では扱いが異なるため、「自動採番なので取込元のIDを考えなくてよい」とは言えません。
親の商品を新しいIDで作り直したら、子の受注明細に残る旧商品IDを新商品IDへ対応付ける必要があります。旧IDと新IDの対応表を作り、件数だけでなく、親のない子レコードがないか確認します。別々のファイルで採番した同じIDが、同じ商品を表すとは限りません。

| 取込方針 | 先に確認すること | 完了時の確認 |
|---|---|---|
| 元IDを維持 | 既存IDとの重複、型、親子関係 | ID一致と追加件数 |
| 新IDを採番 | 旧IDと新IDの対応表を作る方法 | 子の外部キー変換、不一致0件 |
| 異なるDBを統合 | 同じIDに別の商品がないか | コードなどの照合基準と統合結果 |
7 業務で使う前の確認とまとめ
オートナンバーは「レコードを区別するための値」として使うと、役割が明確になります。表示順や伝票番号まで1つのIDに担わせると、見た目を直す操作がデータの関連付けに影響します。内部IDを安定させ、変わり得る番号を別に持たせることが保守の基本です。
次の確認はコピーした環境で行い、結果を記録します。単独操作の確認に加え、複数人で登録するシステムでは同時登録の確認も必要です。本文のSQLはAccess SQLの記述例であり、実際のテーブル名と保存先に合わせて使用します。
| 確認項目 | 期待する結果 |
|---|---|
| 新規登録と保存 | 入力者がIDを決めず、識別用の値が付く |
| 取消しや削除の後の登録 | 欠番を許容し、既存レコードを振り直さない |
| 受注明細から商品を参照 | 意図した商品のIDを子へ保存する |
| 件数表示 | 最大IDではなく対象行数を表示する |
| 取込と出力 | IDの維持または変換ルールが一貫する |
| 同時登録 | 業務番号を含め、重複や競合時の処理を確認する |

よくある質問
A. 必ずしも連続しません。一般的な増分設定では値が増えますが、削除や入力取消しなどにより途中の番号が抜ける場合があります。また、既存データの取込や別の採番設定によっても、見える番号は変わります。目的は各レコードの識別であり、画面上の1行目、2行目を示すことではありません。連続した行番号を表示したい場合は、一覧や帳票の表示用連番を別に設計し、関連付けに使うIDは変更しないようにします。
A. 通常は埋める必要がありません。欠番があっても、残っているレコードを正しく識別できれば、主キーとしての目的は果たせます。番号を詰めるためにデータを作り直すと、受注明細、出力済みCSV、他システムが参照するIDとの対応が崩れることがあります。欠番が問題になるのは、業務上その番号の連続性を要求している場合です。その場合は内部IDを保持し、伝票番号などの管理ルールを別に見直してください。
A. 最大の番号を件数として使うのは適切ではありません。例えばIDが101、102、104の3行だけなら、最大値104と実際の件数3は一致しません。件数はCountによる集計やデータシートの集計行で求めます。また、削除済みを除外する、今月分だけ数えるなど、集計対象の条件も揃える必要があります。フォームの表示件数とテーブル全体の件数が違う場合は、欠番より先にフィルターや元クエリの抽出条件を確認します。
A. 通常のデータシートや連結フォームで、採番済みの値を商品名のように書き換える使い方はできません。データ移行では追加クエリで元IDを指定する方法がありますが、既存IDの編集とは別の操作です。変更したい理由が商品コードの訂正や表示順の調整なら、専用フィールドを用意する方が適切です。既存IDそのものを変更する必要がある場合は、参照する子テーブルや外部連携まで含めた移行として計画してください。
A. 親の商品を参照する外部キーには、通常は親と対応する数値型の長整数を使います。子側にもオートナンバーを設定すると、独立した番号が付くだけで、選択した親を参照する値にはなりません。子の受注明細には、明細自身を識別する「明細ID」と、商品を参照する「商品ID」を分けて持たせます。前者はオートナンバーの主キー、後者は数値型の外部キーです。親が別の型の場合は、その型とサイズに合わせて設計します。
A. 単に内部で区別する番号なら使えますが、欠番禁止、年度ごとの番号、先頭の0、取引先指定の形式などが必要なら別フィールドに分けます。商品IDをオートナンバーにし、商品コードを短いテキストで保持する方法が一例です。請求書番号では発行前の下書き、発行後の取消し、再発行、同時処理も考慮します。見た目の連番だけでなく、一度発行した番号をどう残すかまで決めると、後から照合しやすくなります。
A. DMaxだけでは、複数人が同時に登録する際の重複を防げません。2つの処理が同じ最大値を読むと、同じ次番号を計算する可能性があります。また、最大番号を削除した後に番号を再利用する設計にもなり得ます。業務番号の採番では、一意性を制約で守ることに加え、採番用データの更新制御、失敗時の処理、取消しの記録を組み合わせます。欠番を避けたいという理由だけで主キーを単純な独自採番へ置き換えないでください。
A. 既存の子テーブルや外部システムが元IDを参照しているなら、維持できるかを先に検討します。ただし、取込先で同じIDが別データに使われていれば、そのまま追加できません。新しいIDを付ける場合は旧IDと新IDの対応表を作り、子側の参照も変換します。単独テーブルだけ見て取込件数が合っていても、親子関係が正しいとは限りません。追加後は、参照先がない明細や、別の商品を参照する行がないかまで確認してください。
オートナンバーの設定や運用で困っている場合は
まずはコピー環境で本記事の手順を確認してください。既存IDと伝票番号の整理、複数人採番、データ移行時のキー対応など、影響範囲の判断が難しい場合は、Accessの教科書のお問い合わせフォームから状況をご相談いただけます。使用中の版、対象の画面やテーブル、再現手順を整理すると、相談内容が伝わりやすくなります。
関連記事
参考情報
参照確認日 2026年10月12日。Microsoftの資料を技術仕様の根拠とし、運用上の判断や架空の業務例は本文で補足しています。競合記事は検索意図と論点の確認に使用しています。
1. オートナンバー型を主キーに追加
https://support.microsoft.com/ja-jp/access/add-an-autonumber-field-as-a-primary-key
2. データ型とフィールドプロパティ
https://support.microsoft.com/ja-jp/access/introduction-to-data-types-and-field-properties
3. 主キーを追加または変更
https://support.microsoft.com/ja-jp/access/add-or-change-a-table-s-primary-key-in-access
4. データベース設計の基本
https://support.microsoft.com/ja-jp/access/database-design-basics
6. リレーションシップの作成と編集
https://support.microsoft.com/en-us/access/create-edit-or-delete-a-relationship
7. Application.DMax
https://learn.microsoft.com/en-us/office/vba/api/access.application.dmax