I have a VB6/Access application that occasionally encounters a problem with wrong autonumber field seed.
Lets say there is a table MYTABLE with an autonumber field ID (that is also the primary key). Lets say at the moment the maximum value of ID is 1000. When the application inserts a new record (ID value is not provided explicitly), for some reason it decides that the next autonumber field value is 950 (and not 1001 as it should be) - so a primary key violation error occurs.
I found a KB article that describes my symptoms: http://support.microsoft.com/kb/884185 . In short, they suggest to run a query:
ALTER TABLE MYTABLE ALTER COLUMN ID COUNTER(1001,1)
When I try to do this, it fails with "Invalid field data type"
The problem gets fixed if I open the database in Access and do compact/repair, but I need to be able to fix such problems inside the application: it is installed on a couple of thousands of PCs around the world, and asking people to compact/repair with Access is not an option.
I use DAO DBEngine.CompactDatabase
to perform compact/repair inside the application, but it doesn't fix the seed problem, and some additional tricks are needed.
Any ideas for a solution?
Please reference the following article, it contains a method you may add to your access project to execute to reset seeding. It has been a saver for me several occasions in the past:
http://allenbrowne.com/ser-40.html
In addition to this it gives explanation and insight into causes and potential resolution for such problems.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With