Access : オートナンバー型の再設定

Accessテーブルにオートナンバー型を使用している場合、レコードを削除すると欠番になります。

この欠番をなくし、連番に再設定する方法です。

他のテーブル等で、このオートナンバー型のデータを使用している場合、再設定を実行すると合わなくなります。
注意してください。

■手順
1)テーブルが開いているとエラーになるのでテーブルを閉じます
2)WHERE句でNULLを指定し、テーブル構成のみコピーしたテーブルを作成します。
3)作成したテーブルにデータをコピーします。
4)元のテーブルを削除します。
5)コピーしたテーブル名を元のテーブル名に変更します。
これで完了です。

途中で、元のテーブルを削除しますので、事前にバックアップするなどの対応が必要です。



BackHome BackTips Backメニュー

■ 再設定前のテーブル
顧客IDの9と11が欠番になっています。
欠番のある顧客マスター

■ 実行Access画面
「オートナンバーの再設定」ボタンをクリックすると、実行を開始します。
再設定フォーム

■ 再設定した顧客マスターテーブル
顧客IDが1~10の連番になっています。
顧客マスターテーブル画面
■ Access VBA 実行コード例

Option Compare Database
Option Explicit

Private Sub コマンド0_Click()
    Dim SQL As String
    'テーブルを閉じます
    DoCmd.Close acTable, "顧客マスター"
    'WHERE NULLでテーブル構成のみ作成します
    SQL = "SELECT * INTO 顧客マスタコピー FROM 顧客マスター WHERE NULL"
    CurrentDb.Execute SQL, dbFailOnError

    '作成したテーブルにデータをコピー
    SQL = "INSERT INTO 顧客マスタコピー(顧客名,初回来店日,来店回数) SELECT 顧客名,初回来店日,来店回数 FROM 顧客マスター"
    CurrentDb.Execute SQL, dbFailOnError

    '元のテーブルを削除
    DoCmd.DeleteObject acTable, "顧客マスター"
    'コピーしたテーブル名を元のテーブル名に変更
    DoCmd.Rename "顧客マスター", acTable, "顧客マスタコピー"

End Sub

BackHome BackTips Backメニュー

Copyright(C) FeedSoft