Accessテーブルにオートナンバー型を使用している場合、レコードを削除すると欠番になります。
この欠番をなくし、連番に再設定する方法です。
他のテーブル等で、このオートナンバー型のデータを使用している場合、再設定を実行すると合わなくなります。
注意してください。
■手順
1)テーブルが開いているとエラーになるのでテーブルを閉じます
2)WHERE句でNULLを指定し、テーブル構成のみコピーしたテーブルを作成します。
3)作成したテーブルにデータをコピーします。
4)元のテーブルを削除します。
5)コピーしたテーブル名を元のテーブル名に変更します。
これで完了です。
途中で、元のテーブルを削除しますので、事前にバックアップするなどの対応が必要です。
■ 再設定前のテーブル
顧客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