• ベストアンサー

アクセスについて

アクセスで、テーブルのレコードを 一件消すとID番号がそこだけ 抜かれた形(永久欠番)になってしまいます。 どうしたらID番号がそのまま になるのか教えてください。 また途中にレコードを新しくいれるのは 可能でしょうか?教えてください。

  • art-c
  • お礼率14% (6/42)

質問者が選んだベストアンサー

  • ベストアンサー
  • msystem
  • ベストアンサー率42% (79/186)
回答No.4

オートナンバー型で一度使われた番号は、基本的には使えません。 ただし次のようなときは、再度使うことができます。 たとえばオートナンバー型で次のように番号が振られている 1,2,3,4,5,6,7,8,9 このうち、3,6,8,9を削除する。すると次のようになる。 1,2,4,5,7 この段階で2つデータを追加すると、次のようになる。 1,2,4,5,7,10,11 つまり削除した番号は、欠番になる。 このときに、削除して追加する前に、最適化をすると、追加したときに次のようになります。 1,2,4,5,7,8,9 つまり最適化をすることで、今ある番号の最大値を、現在の最後の数と見るようです。ちなみに、オートナンバー型は、LONGなのでその範囲を超えると、約-200万から数えます。ただし、その段階でレコードを全部消し、最適化すると。また、1から数えます。 また、どうしても欠番を作りたくないのであれば、オートナンバー型をやめて、LONG型などにして順序番号を作るプロシージャを作るしかないですね

その他の回答 (3)

  • bradpitt
  • ベストアンサー率33% (5/15)
回答No.3

オートナンバー型で設定されたフィールドを持つレコードを一度削除したら、 後で追加するのは難しいと思います。 初期の段階では、クエリを使ってオートナンバー型のテーブルを 初期化する方法があります。 詳しくはヘルプを見てください(Access2000で確認) しかし、オートナンバー型など、データ型を一通り 学ばれることが先決かと思われます。 書籍であればすぐに終わる話です。 ヘルプにも相当量の説明書きがあります。 マイクロソフトのサイトにもある程度の説明があります。 ただ、Accessに関しては答えられるものに限界があると思います。 やってる人が少ないのと、難しいからです。 マイクロソフトのサイトでの説明もWordやExcelより少ないです。

参考URL:
http://www.microsoft.com/japan/office/
  • misoka
  • ベストアンサー率35% (56/160)
回答No.2

意味がいまいちツカミ切れない感じですが、 オートナンバー型でIDを振っているなら、 削除したID番号を復活させることは、基本的に できません。 それが仕様だと思うべきです。(TT イヤな場合は、オートナンバーを使わないように するしかないでしょう...

  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.1

accessではデータの並び順を気にした設計はしないほうが良いでしょうね。 並べ替えなどはクエリを使ってその結果に対して行うほうが良いと思います。 特にオートナンバー型の場合はいじらないほうが良いですね。

関連するQ&A

  • Access2010でテーブルの内容で検索

    現在Accessの勉強をしています。 Aテーブル、Bテーブルとあり、 AテーブルはID(オートナンバー)、番号(数字)、名前(文字列)が入っています。 この番号は重複ありで、複数レコードあるとします。 Bテーブルも同じようなID、番号、名前が入っていて、ここの番号は重複していません。 いわばマスタテーブルのようなものです。 (IDと番号を別ける必要があるのかなど、細かいことはこの際気にしないでください。) Aテーブルの全てのレコードの番号を検索し、Bテーブルにない情報だけを表示したいと思います。 この場合どのようにすればよいでしょうか? まだAccessを勉強したてで、よくわかっていないのですが、シンプルな方法はどのようにすれば良いのか思案中です。 よろしくお願いします。

  • 【Access2007について】

    宜しくお願いします。 現在、Access2007のVBAを使って約22万件のレコードから検索条件を指定し、特定のレコードを抽出しようとしているのですが、抽出するテーブルのレコードが約22万件存在するため、抽出処理が途中で止まってしまい、最終的に(応答なし)の状態になってしまいます。 そのテーブルには検索条件で使うフィールドをインデックスとしているため、若干早いとは思うのですが・・・ この問題を解決する方法はあるのでしょうか・・? どなたかご教授を宜しくお願い致します。。。

  • 私は、アクセス2007を使っています。

    私は、アクセス2007を使っています。 そこで本の在庫管理のデータベースを作り テーブルに10件ばかりテーターを入力しました。 そこで、2番目のレコードを削除したら、ID2が削除されました。 私は入力した10件のデーターが全て下から上へくりあがると思ってました。 つまり、 ID3のレコードのデーターが繰り上がってID2のレコードに入るとおもって ID2は削除されないとおもってました。 初めは、ID1 ID2 ID3 ID4 ID5 ID6 ID7 ID8 ID9 ID10 レコード削除後  ID1  ID3 ID4 ID5 ID6 ID7 ID8 ID9 ID10 レコード削除とともに!ID2も削除されました。 削除されたID2を戻す方法はないでしょうか? また、新たに ID1 「削除された箇所  」 ID3 ID4の  「 削除された箇所   」に 再び、ID2をID注入し新たな、レコードを作成したいと思います。 作れますでしょうか? もし できるのなら ID2の注入の方法を教えてください よろしくお願いします。

  • アクセスについて教えてください。

    アクセス2002 XP使用 Aテーブル ID 氏名 電話番号 住所  などの個人情報入力 Bテーブル ID (リレーションするためのID主キー) 管理ID 購入商品 上記のように今作っているのですが、AテーブルIDとBテーブルは1対多でのリレーションしてます。 フォームで帳票形式で見たとき、 管理NOの数だけレコード表示されるのはいいのですが、 AテーブルID 1に対し、管理IDが111と三件分あるとして、(勿論BテーブルIDには123となってます) AテーブルID1にひとつ、受付NOを追加して、   ID  受付NO  管理ID   1   1    1   1   2    1   1   3    1   2   1    2   2   2    2   3   1    3 見たいに受付NOがIDごとに123。。。と自動入力されル洋にしたいのですがどのようにすればできますか?素人なので説明もうまくできなくわけが変わらないかもしれませんがおしえてください。よろしくお願いします。

  • access IDの振り直しについて

    皆さん、明けましておめでとうございます。今年もいろいろとお世話になりますm(_ _)m さて、accessに挑戦しているところですが、データをいろいろいじくっているうちに、オートナンバー型のIDが不整列となってしまいました。そこで、いったん「デザイン」からIDを削除し、再び「行の挿入」でIDを作成したところ、今度はまたIDが別の形で(飛び番=例えば、100の次に1000が来て、1100の次に101が来るというような)不整列となりました。 テーブルのフィールドには「No」というのを設けてあり、これはデータのレコード番号なのですが、それとIDが一致するようにするつもりでした。 このような場合、IDの「振り直し」はどのようにやれば出来るのでしょうか? もう一つお尋ねです。最終「No」とレコード数は一致するはずなのですが、レコードが1個足りません。このような場合、何番のレコード(No)が抜けているのか知るには、どのようにすればよろしいでしょうか? access初心者ですので、いろんなところでつまづいてしまいます。どうかご教示のほどよろしくお願いしますm(_ _)m xp+office2003です。

  • テーブルの自動キー再割り当て

    以下sqlでテーブルhogeを作成し、idを自動キーにしています。 CREATE TABLE `hoge` ( `id` INT NOT NULL AUTO_INCREMENT, ........(省略).......... PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=sjis; このテーブルのレコード番号4を削除するとテーブルのidは 1,2,3,5(最終)になり, 新しいデータを追加(INSERT)するとidは 1,2,3,5,6(最終)とid番号4が欠番になります。 テーブルのidを1,2,3,4,5と続き番号に再割り当てして、新しいレコードがid番号6の挿入されるようにするにはどのようにすればよいでしょうか? sql文をご教示い頂きたくよろしくお願いします。

  • アクセスで、通し番号を付けるには。

    アクセスで、データを蓄積する度にレコード毎に通し番号付けれればと思っています。 商品テーブル 商品id:オートナンバー型 商品:テキスト型 数量:数値型 検査No.:数値型 検査No.のフィールドに通し番号を使えればと思っています。 10個のレコードがあれば、最初が1で最後が10と言う風に通し番号が自動で付けばと思います。 宜しくお願いします。

  • Access フォームの表示順をなおしたい

    いつもお世話になっています。 Access フォームを利用していたのですが、テーブルの既存データを更新してから、そのフォームでのデータ表示順が変わってしまいました。 レコードにはIDとして番号データがあるので、小さい順にフォームに表示させたいと思います。 ちなみに、元となるテーブルはID番号が小さい順に並んでいます。 よろしくお願いします。

  • Accessフォームのコントロールソースについて

    こんにちは。お世話になります。 分からないので押していただけると助かります。 Accessのフォームでテキストボックスに表示するデータについて何ですが、 テーブルT1の項目名[住所]が、Nullの時に、[電話番号]を表示する形にしたいのですが、 コントロールソースに =IIF([ID]is null ,[仮ID],[住所] =Nz([ID],[仮ID]) のどちらを入力しても、#エラーになります。 そこで、そのようなことってできるのかどうかを教えていただきたいのです。 また、できたとして、新規入力する時には、T1のテーブルの[ID]欄に入力するようにしたいのですができますか? レコードソース=T1 です。 すみませんがよろしくお願いいたします。

  • Access2007

    Access2007でテーブルを作成中、1件レコードが抜けているのに気が付き、1件行(レコード)を挿入したいんですがその操作方法がわかりません。 Access2007基礎の勉強を始めたばかりです。よろしくお願いします。 Vista使用

専門家に質問してみよう