sk
2024/06/26 (水) 14:00:13
a3dfe@42a90
明細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]に代入される値を明示的に指定している」追加クエリ、マクロ、プロシージャが存在しないかどうかをご確認されることをお奨めします。
もしそのような操作が実行された形跡も可能性もないのであれば、他の原因を疑われた方がよいでしょう。
通報 ...