【解決方法】MS-Access でオートナンバー フィールドをリセットする方法

[ad_1]

友達
ms-access テーブルにテーブルを作成しました。
その中で、invoiceno フィールドを autonumber として作成しました。
今、私はプロジェクトを終了しました。
テーブル内のすべてのテスト データを削除しました。
自動番号を削除している間、1027でした
テーブルからデータを完全に削除した後。
新しいレコードを挿入しようとしました。
自動番号が来ています 1028 したくない 1028 1 から開始したい (つまり、最初から)。

どうすればこれをリセットできますか。

ありがとう

解決策 7

データベースを圧縮してから、挿入を再試行してください

解決策 2

テーブル内のすべての行を削除した後、データベースを圧縮すると、自動番号の値が 1 にリセットされます。

データベースの圧縮については、このリンクを通過してください-

Visual Basic .NET を使用して Microsoft Access データベースを圧縮する方法[^]

解決策 1

フィールドを削除して再作成しない限り、できません。

これには正当な理由があります。
1) Autonumber は (残念ながら) テーブルへのインデックスとしてよく使用されます。 これは、以前の自動番号付けによって削除された行を参照する他の行が存在する可能性があることを意味します。 番号をリセットできる場合、それらの行は最終的に代わりに新しい行に関連付けられます。

あなたの場合、自動番号を請求書番号として使用し、請求書に項目の別のタブがあるとしたら、どのような問題が発生するか想像してみてください。 これらは、自動番号によって請求書を参照します。 番号をリセットすると、顧客は突然、注文していない、まだ受け取っていない 30 個の商品の請求書を受け取ることになります。 トラブル発生。

個人的には、オートナンバーが嫌いで、決して参照しない場合にのみ使用します。たとえば、ログ テーブルのインデックスとして使用します。 請求書番号の特定の順序が必要な場合 (ほとんどの地域では合法的に必要です)、ストアド プロシージャを記述して新しい請求書番号を割り当て、代わりに実際のデータベース行参照に Guid を使用することを検討してください。

解決策 4

You can execute an Access DDL statement from ADO to reset the autonumber seed value. Here is an example Immediate window session:

strDdl = "ALTER TABLE Dummy ALTER COLUMN ID COUNTER(1, 1);"
CurrentProject.Connection.Execute strDdl

The statement must be executed from ADO. It will fail if you try it with DAO (such as CurrentDb.Execute strDdl), or from the Access query designer. The example succeeded because CurrentProject.Connection is an ADO object.

The two values following COUNTER are seed and increment. So if I wanted the autonumber to start from 1000 and increment by 2, I could use COUNTER(1000, 2)

If the table contains data, the seed value must be greater than the maximum stored value. If the table is empty when you execute the statement, that will not be an issue.

————
http://stackoverflow.com/questions/20738596/how-to-reset-an-access-tables-autonumber-field-it-didnt-start-from-1[^]

クレジットは -> HansUp

解決策 6

ALTER TABLE Table1 ALTER COLUMN ID COUNTER(0,1)

[ad_2]

コメント

タイトルとURLをコピーしました