(Q) In a table I'm using an Autonumber Field as the primary ID. But if the user creates a new record and closes the form without saving it, the Autonumber field still increases by one. This creates gaps in the continuity of the primary key field. How can I:
(a) stop the Autonumber incrementing itself if the record wasn't created; and
(b) force a renumber of this field to occupy contiguous numbers if I was delete record(s) from the table?
(A) There is no such thing as a record number in Access.
Records just "are" - a table is a big, unsequenced bucket. Indexes and queries provide order to the records in the bucket.
Autonumber is simply a way to create a unique identifier for each record. It should NEVER be treated as a meaningful piece of data.
If you need a meaningful sequencer (like to assign user numbers), you have to create it and manipulate it yourself. You will need to stop using Autonumber, and create a sequence number that you increment yourself and apply to the record when it is saved.
You can also capture the numbers from deleted records and re-use them. If, however, you have the possibility of related records using the number as a foreign key - do not reuse old numbers.
Now, for your db to "work" primary keys do not need to be continuous numbers; they just need to be unique - which is why the Autonumber function works like it does.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.