Microsoft Access 掲示板

オートナンバー値の途中が大きく抜けていた / 1

2 コメント
views
4 フォロー
1

明細IDはオートナンバーです。

T発注Subの件数は3万件程なのですが、たまたま明細ID値を確認すると100万を超えてました。テーブルの明細IDを細かく見ると2万超えた辺りから急に100万台になってました(途中が大きく抜けてます)。

T発注Mainのレコードを削除することはありますが(Subも連鎖削除される)、そんなに沢山した記憶はありません。

  • [T発注Sub]に100万件以上ものレコードが格納された事実はない。

  • 仮に100万件以上ものレコードが格納されていたとしても、およそ98万件ものレコードがまとめて削除された事実はない。

以上の 2 点を前提とした場合は、原因は「オートナンバー型のフィールドのシード値を変更させ得る操作」が行われたことぐらいしかないと思います。

例えば、[T発注Sub]の[明細ID]のシード値が20000である状態で、次のような追加クエリを実行して新規レコードを1件追加したとします。

INSERT INTO [T発注Sub] ([明細ID])
VALUES (1000000);

その後、[T発注Sub]をデータシートビューで開いて新規レコードを挿入した場合、そのレコードの[明細ID]の値は( 20000 でも 20001 でも 20002 でもなく) 1000001 となり、それ以降に挿入されるレコードについても 1 ずつインクリメントされていきます。
DAO や ADO を介して新規レコードの挿入が実行された場合も同様です。

とりあえず、上記のように「[T発注Sub]の新規レコードの[明細ID]に代入される値を明示的に指定している」追加クエリ、マクロ、プロシージャが存在しないかどうかをご確認されることをお奨めします。

もしそのような操作が実行された形跡も可能性もないのであれば、他の原因を疑われた方がよいでしょう。

通報 ...