7

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 を使用していますが、シードの問題は解決されず、いくつかの追加のトリックが必要です。

解決策のアイデアはありますか?

4

3 に答える 3

4

次の記事を参照してください。アクセス プロジェクトに追加して、シードをリセットするために実行できるメソッドが含まれています。過去に何度か節約できました。

http://allenbrowne.com/ser-40.html

これに加えて、そのような問題の原因と潜在的な解決策についての説明と洞察を提供します。

于 2010-02-18T18:42:34.930 に答える
0

COUNTER が正当なデータ型として認識されるように、データベースが ANSI 92 を使用するように設定されていることを確認する必要がある場合もあります。

Access 2007で、 [Access のオプション]、[オブジェクト デザイナー]、[SQL Server 互換性構文 (ANSI 92)] の順に移動して、これを設定します。

于 2010-02-18T22:07:54.737 に答える
0

コンパクト/修理で問題を解決できる場合があります。

In Access 2010:  Compact and Repair Database on the Database Tools ribbon.
In Access 2007:  Office Button | Manage.
In earlier versions:  Tools | Database Utilities.
于 2013-02-28T12:32:20.757 に答える