電子書籍の厳選無料作品が豊富!

Accessでテーブル(T_テーブル①)のフィールド数が255を超えたので、
別テーブルを準備しました(T_テーブル②)。

次に、オートナンバー型の「ID」でリレーションシップを行いました。

ですが、フォームで、1レコード登録した際、T_テーブル①とT_テーブル②の「ID」がなぜかズレます。
(例:T_テーブル①で100の次が102。T_テーブル②はズレずに、100の次が101)

ズレるせいで、フォームを「ID」で検索して表示した際、入力データが正しく表示されません。

どのような原因が考えられますでしょうか?

教えて頂ければ、幸いです。

(テーブル設計や正規化といった根本の話もあると思いますが、
 上記環境での解決を目指しています)

A 回答 (1件)

T_テーブル①に一度データを入れて、削除した、ってことはありませんか?


オートナンバーは一度振られると、その番号のデータを削除しても、それは欠番になります。
accdbを最適化すると、最大値+1状態に戻ります。
両テーブルに確実に同じ番号を入れたいのであれば、オートナンバーは使わない方がいいですよ。何が起こるか分かりませんので。
フォームの更新前処理イベントで、新規データ時には自分で最大値+1を取得して入れるようにすることをお勧めします。
    • good
    • 0
この回答へのお礼

情報をありがとうございました。
「オートナンバーを使用しない」方法で解決しました。

とても助かりました。ありがとうございました。

お礼日時:2021/02/25 15:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報