VB6/Access アプリケーションを使用していますが、オートナンバー フィールド シードが正しくないという問題が発生することがあります。
自動付番フィールド ID (主キーでもある) を持つテーブル MYTABLE があるとします。現時点で ID の最大値が 1000 であるとします。アプリケーションが新しいレコードを挿入すると (ID 値が明示的に提供されていません)、何らかの理由で、次の autonumber フィールド値が 950 であると判断されます (本来あるべき 1001 ではありません)。 ) - したがって、主キー違反エラーが発生します。
私の症状を説明する KB 記事を見つけました: http://support.microsoft.com/kb/884185。つまり、クエリを実行することをお勧めします。
ALTER TABLE MYTABLE ALTER COLUMN ID COUNTER(1001,1)
これを実行しようとすると、「フィールドのデータ型が無効です」というエラーが表示されて失敗します
Access でデータベースを開いて圧縮/修復を行うと問題は解決しますが、アプリケーション内でこのような問題を修正できるようにする必要があります。世界中の数千台の PC にインストールされており、人々に圧縮を求めています。 /repair with Access はオプションではありません。
DBEngine.CompactDatabase
アプリケーション内で圧縮/修復を実行するために DAO を使用していますが、シードの問題は解決されず、いくつかの追加のトリックが必要です。
解決策のアイデアはありますか?