VBA:Accessでテーブルのオートナンバー型をクリアし1から振りなおす方法
1.やりたいこと
Accessのテーブルでデータ型に「オートナンバー型」を指定している場合、いったんレコードを削除したあと、もう一度レコードを追加しても「1」から始まらないので、「1」から番号を振りなおしたい。
こんな感じでレコードを削除しても、その番号は使われず、新しい番号が振られていきます。
大量のデータを削除し、もう一度取り込みなおすようなシステムの場合、番号はすぐに数百万とかになります。。
2.サンプルコード
以下のサンプルコードを実行するとオートナンバーがクリアされます。
(1)オートナンバーをクリアする方法
1 2 3 4 5 6 |
Function オートナンバークリア() 'オートナンバーをクリアする' DoCmd.RunSQL "ALTER TABLE [T_サンプル] ALTER COLUMN [ID] COUNTER(1,1)" 'COUNTER(初期値,カウントアップ単位数)となります' '「1」から始まり、「1」ずつカウントが上がればいい場合は(1,1)とします。' End Sub |

(2)COUNTERについて
「COUNTER」の後ろについているカッコ内は、(初期値,カウントアップ単位数)となっています。
以下のように設定すると「5」から始まり、「10」ずつカウントがアップするようになります。
今のところ使ったことはないけれど。。
1 2 3 4 |
Function オートナンバークリア() 'オートナンバーをクリアし、5から始まり、10ずつカウントがアップする' DoCmd.RunSQL "ALTER TABLE [T_サンプル] ALTER COLUMN [ID] COUNTER(5,10)" End Sub |
◆関連記事

AccessVBA:【DoCmd】【TransferSpreadsheetメソッド】Excelの取込み(インポート)と出力(エクスポート)
【DoCmd】「TransferSpreadsheet」を使ったExcelの入力(インポート)と出力(エクスポート)の方法について

VBA:【ADO】【取込み】ExcelファイルのAccessテーブルへのインポート・取込み「SQL文」
【VBA】ExcelファイルのAccessテーブルへのインポート・取込み方法。「ADO」と「SQL文」利用。

VBA:【ADO】【取込み】CSVファイルのAccessテーブルへのインポート・取込み「SQL文」
【VBA】CSVファイルのAccessテーブルへのインポート・取込み方法。「ADO」と「SQL文」利用。