おすすめ記事

同じカテゴリー

オートナンバーは使いたくない



テーブルでコードなどに、オートナンバー型を使っているとなにかと不便なんですよねぇ〜。
番号に欠番が生じた場合、再度 番号を振りなおすのも面倒だし。
その方法は、あります。
オートナンバー型の番号の振り直し(私が一番簡単だと思う方法を解説しています)

Microsoftのサイトの↓でも紹介されています。
オートナンバー型のデータを連続番号に再設定する方法

エクセルにエクスポートして番号を振りなおして、再度 それをインポートする方法もあります。
でもね・・・・やっぱり、できるだけ面倒なことは避けたいですよね。


オートナンバー型を使わずに自動的に連番を入力していく方法です。いくつか方法はあるようですが、その中の一つの方法と思ってくださいね。
下のような[管理テーブル]があります。[ナンバー]フィールドのデータ型は、数値型にします。
テーブル データ型

そして、[管理テーブル]を元に作成した入力用のフォームがあります。
テーブル

入力用のフォームをデザインで開いて、フォームセレクタをダブルクリック。
フォームのプロパティを表示させます。
[イベント]タブから[挿入前処理]プロパティのビルドボタンをクリックします。
イベントタブ

スポンサーリンク

コードビルダを選択して[OK]ボタンをクリック。
ビルダの選択

下のようにコードを書きます。
[ナンバー]はテキストボックスの名前。
[管理テーブル]は、テーブルの名前。
赤線の部分だけ書き直します。
管理テーブルのレコード件数を数えて、0だったら1を返して、それ以外なら管理テーブルの中で一番大きな値に1を足したものを返すというものです。
VBE

これでOKです。
もしも、データが入力されたあとなら下のように一行だけでもいいです。
(ナンバーフィールドに[1]が入力された後ならという意味です)

VBE

ビューを切り替えて、入力してみます。
ナンバーには入力しないで[所属]フィールドで選択(入力)した時点で自動的に番号が振られると思います。
フォームビュー

ナンバーテキストには、カーソルが移動しないようにした方がいいかもしれませんね。[ナンバー]テキストボックスのプロパティの[データ]タブから、[使用可能]を[いいえ]、[編集ロック]を[はい]にします。これで、ナンバーのテキストボックスにはカーソルは移動しなくなります。
データタブ

ビューを切り替えて、確認してみてください。
フォームビュー


たとえば、管理テーブルでナンバー3のレコードを削除したとします。
テーブル

テーブルで新しくナンバー3を入力します。
入力

フォームを開くと、ちゃんと並び変わっています。もちろん、テーブルも昇順に並びます。
フォームビュー

トラブルをすぐに解決したいならteratail

おすすめ記事

シェアする