IN THE SPOTLIGHT: MDE to MDB Conversion Service
(also supports: ACCDE to ACCDB, ADE to ADP, etc)
IN THE SPOTLIGHT: vbWatchdog
VBA error handling just got easier...
" vbWatchdog is off the chart. It solves a long standing problem of how to consolidate error handling into one global location and avoid repetitious code within applications. "
- Joe Anderson,
Microsoft Access MVP
Meet Shady, the vbWatchdog mascot watching over your VBA code →
(courtesy of Crystal Long, Microsoft Access MVP)
IN THE SPOTLIGHT: vbMAPI
An Outlook / MAPI code library for VBA, .NET and C# projects
Get emails out to your customers reliably, and without hassle, every single time.
Use vbMAPI alongside Microsoft Outlook to add professional emailing capabilities to your projects.
(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.
Have your say - comment on this article.
What did you think of 'Using AutoNumbers properly'?
No comments yet.
Why not be the first to comment on this article?!
Have your say...