11/03/2020

Access。オートナンバー型の欠番を強引な方法で連番を復活させてみよう。【Missing number revival】

Access。オートナンバー型の欠番を強引な方法で連番を復活させてみよう。

<Access>

Accessのテーブル。連番を自動で入力することができる、「オートナンバー型」。

とても便利なのですが、困るというか、欠番を改めて入力設定することができません。


データベースとしては、当然なのですが、別で使用したいなど欠番を復活させたい場合はどうしたらいいのでしょうか?


永久欠番なので、そのままでは、復活させることは出来ません。


かなり、パワープレーというか、強引な方法ならば、復活させることができます。


次のテーブルがあります。

 

データ型を確認するので、デザインビューで確認しておきましょう。


会員IDは、オートナンバー型です。


4番が欠番になっていますね。

5番の伊藤さんを4番にしたいのですが、直接入力して変更しようとしても、できません。


ステータスバーに「編集できません」メッセージが表示されるだけです。


当然、新しいデータを入力しても、4ではなく、6で自動的にナンバーを設定されるだけです。


なので、暫定でいいので、連番用のフィールドを増設するところから、作業が始まります。


 

デザインビューに表示を変えます。


「連番ID」をオートナンバー型で新しく追加します。


ここで、上書き保存や、ビューを切り替えたりすると、「オートナンバー型のフィールドは、1つのテーブルに1つしか定義できない」というエラーが表示されます。


ケチと思いますが、OKボタンをクリックして作業を進めましょう。


会員IDに設定してある、主キーを解除します。そして、会員IDの行を削除します。


連番IDに主キーを設定して、先頭に移動させます。


最後に、連番IDを元のフィールド名である「会員ID」に変更します。


それでは、データシートビューに表示を切り替えて確認してみましょう。


このように、会員IDフィールで欠番になっていた、「4」が復活していることが確認できました。


やった作業としては、新しくオートナンバー型のフィールドを追加して、元からあるオートナンバー型のフィールドを削除しただけです。


たったこれだけですが、連番を復活させることができました。


本来は、同じ番号を使いまわすことは、禁忌なのですが、先程も書きましたように、別で流用するなど必要に応じて、再設定することができます。


このテクニックは、間違えてデータを削除してしまったときなど、Accessの入門研修でよくリカバリーとして使っています。


まぁ、全くリカバリーが出来ないわけではないということは、知っておくといいのかもしれませんね。