Home > 即効テクニック > Access一般機能 > データ操作 > オートナンバーを用いないでID番号を自動で設定する

即効テクニック

データ操作

オートナンバーを用いないでID番号を自動で設定する

( - )
Accessの標準のオートナンバーは、固有の番号を自動生成することができますが一度使用した番号は使用できないなど制約が多く使いにくいところがあります

●手順●
  1. 任意のテーブルに新しく項目を追加します。
  2. フィールド名は[ID]、[***ID]などIDの項目らしい名前をつけます。
  3. データ型は[数値][長整数型]このフィールドは、主キーを設定します。
●サンプル● データ追加入力用のフォーム上で、この[ID]のプロパティーに〔データ〕ー〔規定値〕の項目に =IIf(DMax("ID","form","ID Is Not Null") Is Null,1,DMax                    ("ID","form","ID Is Not Null")+1) を入力します。 ●動作確認● フォームで、実際にデータを入力してご確認ください。 ●詳細● ACCESSに用意されている「オートナンバー型」という特別なデーターを使用すると、固有の番号を自動生成することができます。ただし、データーシートビューやフォームビューで新しいレコードを入力し始めるとAccessは、そのレコードに新たな番号を割り当てるため、そのレコードを削除した場合でも、その番号を再度使用することができません。すなわち、欠番が出てしまう可能性があります。 また、データをすべて削除し、0からデータを入力したくてもオートナンバーは、1から始まってくれません。この処理は最後のIDをDMax関数で見つけ、その番号に1を加算することで行われます。レコードがまったく存在しない場合には、DMax関数は特別にNullを返します。iff関数でNull値が返ってくると1を設定します。 レコードの削除などで、間に欠番が出た場合、新しいレコードにその欠番の番号を与えることも可能です。表示されている数字を削除して、欠番の番号を入力すればその番号をIDとして設定することができます。 ●ポイント● <<規定値>>フィールドにあらかじめ入力される初期値を指定する。何も入力していないときにはNull値になる。