زمانیکه در جدول سینگلی که فیلد AutoNumber دارد رکوردی را حذف میکنید دیگر شماره های پشت سر هم را ندارید و می بایست چاره ای بیاندیشید یک راه این است که جدول را در نمای دیزاین باز کنید فیلد AutoNumber را حذف کنید جدول را ببندید و Compact Database را از Option بزنید و دوباره فیلد را به جدول اضافه کنید. برای جداولی که بهم ربط دارند در پیوندها توصیه آفیس را اجرا کنید با عنوان Reset AutoNumber.
Add This Code on Form Close Event whether you add new record or delete, it will recreate the Primary Keys from 1 to Last record.This code will not disturb other columns of table.
کد زیر را به رویداد Close فرمتون اضافه کنید مان Add یا Delete کردن رکورد جدید دوباره Prinmary Keys را از یک تا آخرین رکورد می سازد.این کد فقط مربوط به اولین فیلد است و به سایر ستون های جدول اعمال نمی گردد
Sub updatePrimaryKeysOnFormClose()
Dim i, rcount As Integer
'Declare some object variables
Dim dbLib As Database
Dim rsTable1 As Recordset
تنظیم کردم dbLib به دیتابیس جاری
'Set dbLib to the current database (i.e. LIBRARY)
Set dbLib = CurrentDb
باز کردن شئ رکوردشت برای جدول Table1
'Open a recordset object for the Table1 table
Set rsTable1 = dbLib.OpenRecordset("Table1")
شمارش رکوردهای رکوردست
rcount = rsTable1.RecordCount
'== Add New Record ============================
اضافه کردن رکورد جدید البته از Edit استفاده شده می توانید از rs.MoveFirst استفاده کنید
'Rs.MoveLast
'Rs.MoveFirst
'rCount=Rs.RecordCount
For i = 1 To rcount
With rsTable1
.Edit
.Fields(0) = i
.Update
'-- Go to Next Record ---
.MoveNext
End With
Next
Set rsTable1 = rsTable1
End Sub
alter-table-statement-microsoft-access-sql
Sql : (AutoNumber Field Value )
CurrentDB.Execute "ALTER TABLE yourTable ALTER COLUMN myID COUNTER(1,1)"