WUGNET, the Windows User Group Network
Your Complete Resource Center for "The Best" in Shareware, Computing Tips and Support, Windows Industry News... and much more!
Home Forums Shareware Windows Tips Hot Offers FREE Newsletters Arcade Contact Us About Partners
Search WUGNET: RSS Feeds RSS Feeds Advertise with WUGNET    |    Shareware eBooks
HomeHome FAQFAQ      ProfileProfile    Private MessagesPrivate Messages   Log inLog in

Autonumber as primary key

 
   Home -> Office other -> Table Design RSS
Next:  Getting "Latest" Exam Date on Query  
Author Message
J E Jensen

External


Since: Sep 09, 2009
Posts: 2



(Msg. 1) Posted: Wed Sep 09, 2009 5:05 am
Post subject: Autonumber as primary key
Archived from groups: microsoft>public>access>tablesdbdesign (more info?)

Hello NG

I have a huge access database that is maintained with a rather old
application (VB6).
The way the data is maintained is by using RecordSet.AddNew ......
RecordSet.Udate

When i fire the RecordSet.AddNew i can see what number the PrimaryKey will
be. Now i'll get an error when i fire the RecordSet.Update (Err#3022) the
generated number already exists in the table - therefore it can't be saved.
The record has only about 500.000 records - the lowest key is -2147483648
and the highest key is 2147483647 - there is ofcouse a lots of gabs between
the numbers.

The Primary key was set as AUTO NUMBER with the "new values" set to
Increment.

When i changed the "Increment" to "Random" all worked just fine.

Now my question is - is the random OK to use?
Does anyone know of a tool to re-index the table ( so that the auto-number
again start with 1 ).

Kind regards

Johnny E. Jensen
Back to top
Login to vote
Allen Browne

External


Since: Nov 08, 2003
Posts: 3394



(Msg. 2) Posted: Wed Sep 09, 2009 6:05 am
Post subject: Re: Autonumber as primary key [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

Random is okay.

For a sequential autonumber, compact/repair a database to reset the Seed. If
that doesn't work this code will do it:
http://allenbrowne.com/ser-40.html

The simplest way to change the existing table would be:
a) In table design view, change the field to Number instead of AutoNumber.
Save.
b) Then add a new field of type autonumber.

--
Allen Browne - Microsoft MVP. Perth, Western Australia
Tips for Access users - http://allenbrowne.com/tips.html
Reply to group, rather than allenbrowne at mvps dot org.


"J E Jensen" <jej.RemoveThis@winnercrm.dk> wrote in message
news:eshB#eSMKHA.1372@TK2MSFTNGP02.phx.gbl...
> Hello NG
>
> I have a huge access database that is maintained with a rather old
> application (VB6).
> The way the data is maintained is by using RecordSet.AddNew ......
> RecordSet.Udate
>
> When i fire the RecordSet.AddNew i can see what number the PrimaryKey will
> be. Now i'll get an error when i fire the RecordSet.Update (Err#3022) the
> generated number already exists in the table - therefore it can't be
> saved.
> The record has only about 500.000 records - the lowest key is -2147483648
> and the highest key is 2147483647 - there is ofcouse a lots of gabs
> between the numbers.
>
> The Primary key was set as AUTO NUMBER with the "new values" set to
> Increment.
>
> When i changed the "Increment" to "Random" all worked just fine.
>
> Now my question is - is the random OK to use?
> Does anyone know of a tool to re-index the table ( so that the auto-number
> again start with 1 ).
>
> Kind regards
>
> Johnny E. Jensen
>
>
Back to top
Login to vote
CraigH

External


Since: Apr 24, 2009
Posts: 2



(Msg. 3) Posted: Wed Sep 09, 2009 6:05 am
Post subject: Re: Autonumber as primary key [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

Just a little bit more to the simple way.

"Allen Browne" wrote:

> Random is okay.
>
> For a sequential autonumber, compact/repair a database to reset the Seed. If
> that doesn't work this code will do it:
> http://allenbrowne.com/ser-40.html

BACK UP DATABASE

>
> The simplest way to change the existing table would be:
> a) In table design view, change the field to Number instead of AutoNumber.
> Save.
> b) Then add a new field of type autonumber.


c) Go to each related table add new foriegn key field (I assume you use the
autonumber as that key)
d) Run update query to update new foriegn key field with new Autonumber
e) Redo relationships on new keys
f) Make sure everything works and then delete the old fields.

>
> --
> Allen Browne - Microsoft MVP. Perth, Western Australia
> Tips for Access users - http://allenbrowne.com/tips.html
> Reply to group, rather than allenbrowne at mvps dot org.
>
>
> "J E Jensen" <jej.TakeThisOut@winnercrm.dk> wrote in message
> news:eshB#eSMKHA.1372@TK2MSFTNGP02.phx.gbl...
> > Hello NG
> >
> > I have a huge access database that is maintained with a rather old
> > application (VB6).
> > The way the data is maintained is by using RecordSet.AddNew ......
> > RecordSet.Udate
> >
> > When i fire the RecordSet.AddNew i can see what number the PrimaryKey will
> > be. Now i'll get an error when i fire the RecordSet.Update (Err#3022) the
> > generated number already exists in the table - therefore it can't be
> > saved.
> > The record has only about 500.000 records - the lowest key is -2147483648
> > and the highest key is 2147483647 - there is ofcouse a lots of gabs
> > between the numbers.
> >
> > The Primary key was set as AUTO NUMBER with the "new values" set to
> > Increment.
> >
> > When i changed the "Increment" to "Random" all worked just fine.
> >
> > Now my question is - is the random OK to use?
> > Does anyone know of a tool to re-index the table ( so that the auto-number
> > again start with 1 ).
> >
> > Kind regards
> >
> > Johnny E. Jensen
> >
> >
>
Back to top
Login to vote
J E Jensen

External


Since: Sep 09, 2009
Posts: 2



(Msg. 4) Posted: Wed Sep 09, 2009 6:05 pm
Post subject: Re: Autonumber as primary key [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

Hello Allen

Thanks for your reply.
I think i stay with the RANDOM setting for now.

I tryed the link bellow (allenbrowne.com/ser-40.htm) with no luck because
the seed is set to higest max. number for the long data type in the table so
i get the overflow error.

Is there something i can do to prevent this to happen in future. The
application and database has been on the market for almost 15 years now, and
this is the first time ever that this has happend.
The database was until one year ago a replicate able database, but has been
converted back to a (non-replacte able database) - (by importing data to a
new database)

Anyway thanks again for your reply.

Kind regards

Johnny E. Jensen

"Allen Browne" <AllenBrowne.DeleteThis@SeeSig.Invalid> wrote in message
news:ewFAt5SMKHA.1280@TK2MSFTNGP04.phx.gbl...
> Random is okay.
>
> For a sequential autonumber, compact/repair a database to reset the Seed.
> If that doesn't work this code will do it:
> http://allenbrowne.com/ser-40.html
>
> The simplest way to change the existing table would be:
> a) In table design view, change the field to Number instead of AutoNumber.
> Save.
> b) Then add a new field of type autonumber.
>
> --
> Allen Browne - Microsoft MVP. Perth, Western Australia
> Tips for Access users - http://allenbrowne.com/tips.html
> Reply to group, rather than allenbrowne at mvps dot org.
>
>
> "J E Jensen" <jej.DeleteThis@winnercrm.dk> wrote in message
> news:eshB#eSMKHA.1372@TK2MSFTNGP02.phx.gbl...
>> Hello NG
>>
>> I have a huge access database that is maintained with a rather old
>> application (VB6).
>> The way the data is maintained is by using RecordSet.AddNew ......
>> RecordSet.Udate
>>
>> When i fire the RecordSet.AddNew i can see what number the PrimaryKey
>> will be. Now i'll get an error when i fire the RecordSet.Update
>> (Err#3022) the generated number already exists in the table - therefore
>> it can't be saved.
>> The record has only about 500.000 records - the lowest key is -2147483648
>> and the highest key is 2147483647 - there is ofcouse a lots of gabs
>> between the numbers.
>>
>> The Primary key was set as AUTO NUMBER with the "new values" set to
>> Increment.
>>
>> When i changed the "Increment" to "Random" all worked just fine.
>>
>> Now my question is - is the random OK to use?
>> Does anyone know of a tool to re-index the table ( so that the
>> auto-number again start with 1 ).
>>
>> Kind regards
>>
>> Johnny E. Jensen
>>
>>
Back to top
Login to vote
Jeff Boyce

External


Since: Nov 04, 2004
Posts: 2279



(Msg. 5) Posted: Wed Sep 09, 2009 6:05 pm
Post subject: Re: Autonumber as primary key [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

Unfortunately, RANDOM <> unique (just very, very unlikely).

Regards

Jeff Boyce
Microsoft Office/Access MVP

"J E Jensen" <jej.TakeThisOut@winnercrm.dk> wrote in message
news:%232%23vKeZMKHA.5192@TK2MSFTNGP02.phx.gbl...
> Hello Allen
>
> Thanks for your reply.
> I think i stay with the RANDOM setting for now.
>
> I tryed the link bellow (allenbrowne.com/ser-40.htm) with no luck because
> the seed is set to higest max. number for the long data type in the table
> so i get the overflow error.
>
> Is there something i can do to prevent this to happen in future. The
> application and database has been on the market for almost 15 years now,
> and this is the first time ever that this has happend.
> The database was until one year ago a replicate able database, but has
> been converted back to a (non-replacte able database) - (by importing data
> to a new database)
>
> Anyway thanks again for your reply.
>
> Kind regards
>
> Johnny E. Jensen
>
> "Allen Browne" <AllenBrowne.TakeThisOut@SeeSig.Invalid> wrote in message
> news:ewFAt5SMKHA.1280@TK2MSFTNGP04.phx.gbl...
>> Random is okay.
>>
>> For a sequential autonumber, compact/repair a database to reset the Seed.
>> If that doesn't work this code will do it:
>> http://allenbrowne.com/ser-40.html
>>
>> The simplest way to change the existing table would be:
>> a) In table design view, change the field to Number instead of
>> AutoNumber. Save.
>> b) Then add a new field of type autonumber.
>>
>> --
>> Allen Browne - Microsoft MVP. Perth, Western Australia
>> Tips for Access users - http://allenbrowne.com/tips.html
>> Reply to group, rather than allenbrowne at mvps dot org.
>>
>>
>> "J E Jensen" <jej.TakeThisOut@winnercrm.dk> wrote in message
>> news:eshB#eSMKHA.1372@TK2MSFTNGP02.phx.gbl...
>>> Hello NG
>>>
>>> I have a huge access database that is maintained with a rather old
>>> application (VB6).
>>> The way the data is maintained is by using RecordSet.AddNew ......
>>> RecordSet.Udate
>>>
>>> When i fire the RecordSet.AddNew i can see what number the PrimaryKey
>>> will be. Now i'll get an error when i fire the RecordSet.Update
>>> (Err#3022) the generated number already exists in the table - therefore
>>> it can't be saved.
>>> The record has only about 500.000 records - the lowest key
>>> is -2147483648 and the highest key is 2147483647 - there is ofcouse a
>>> lots of gabs between the numbers.
>>>
>>> The Primary key was set as AUTO NUMBER with the "new values" set to
>>> Increment.
>>>
>>> When i changed the "Increment" to "Random" all worked just fine.
>>>
>>> Now my question is - is the random OK to use?
>>> Does anyone know of a tool to re-index the table ( so that the
>>> auto-number again start with 1 ).
>>>
>>> Kind regards
>>>
>>> Johnny E. Jensen
>>>
>>>
>
>
Back to top
Login to vote
Allen Browne

External


Since: Nov 08, 2003
Posts: 3394



(Msg. 6) Posted: Wed Sep 09, 2009 11:05 pm
Post subject: Re: Autonumber as primary key [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

To prevent problems with autonumbers, you need to understand what causes the
problem so you can take action at the appropriate time. The article had all
the info I'm aware of.

--
Allen Browne - Microsoft MVP. Perth, Western Australia
Tips for Access users - http://allenbrowne.com/tips.html
Reply to group, rather than allenbrowne at mvps dot org.


"J E Jensen" <jej.TakeThisOut@winnercrm.dk> wrote in message
news:#2#vKeZMKHA.5192@TK2MSFTNGP02.phx.gbl...
> Hello Allen
>
> Thanks for your reply.
> I think i stay with the RANDOM setting for now.
>
> I tryed the link bellow (allenbrowne.com/ser-40.html) with no luck because
> the seed is set to higest max. number for the long data type in the table
> so i get the overflow error.
>
> Is there something i can do to prevent this to happen in future. The
> application and database has been on the market for almost 15 years now,
> and this is the first time ever that this has happend.
> The database was until one year ago a replicate able database, but has
> been converted back to a (non-replacte able database) - (by importing data
> to a new database)
>
> Anyway thanks again for your reply.
>
> Kind regards
>
> Johnny E. Jensen
>
> "Allen Browne" <AllenBrowne.TakeThisOut@SeeSig.Invalid> wrote in message
> news:ewFAt5SMKHA.1280@TK2MSFTNGP04.phx.gbl...
>> Random is okay.
>>
>> For a sequential autonumber, compact/repair a database to reset the Seed.
>> If that doesn't work this code will do it:
>> http://allenbrowne.com/ser-40.html
>>
>> The simplest way to change the existing table would be:
>> a) In table design view, change the field to Number instead of
>> AutoNumber. Save.
>> b) Then add a new field of type autonumber.
>>
>> --
>> Allen Browne - Microsoft MVP. Perth, Western Australia
>> Tips for Access users - http://allenbrowne.com/tips.html
>> Reply to group, rather than allenbrowne at mvps dot org.
>>
>>
>> "J E Jensen" <jej.TakeThisOut@winnercrm.dk> wrote in message
>> news:eshB#eSMKHA.1372@TK2MSFTNGP02.phx.gbl...
>>> Hello NG
>>>
>>> I have a huge access database that is maintained with a rather old
>>> application (VB6).
>>> The way the data is maintained is by using RecordSet.AddNew ......
>>> RecordSet.Udate
>>>
>>> When i fire the RecordSet.AddNew i can see what number the PrimaryKey
>>> will be. Now i'll get an error when i fire the RecordSet.Update
>>> (Err#3022) the generated number already exists in the table - therefore
>>> it can't be saved.
>>> The record has only about 500.000 records - the lowest key
>>> is -2147483648 and the highest key is 2147483647 - there is ofcouse a
>>> lots of gabs between the numbers.
>>>
>>> The Primary key was set as AUTO NUMBER with the "new values" set to
>>> Increment.
>>>
>>> When i changed the "Increment" to "Random" all worked just fine.
>>>
>>> Now my question is - is the random OK to use?
>>> Does anyone know of a tool to re-index the table ( so that the
>>> auto-number again start with 1 ).
>>>
>>> Kind regards
>>>
>>> Johnny E. Jensen
>>>
>>>
>
>
Back to top
Login to vote
Display posts from previous:   
       Home -> Office other -> Table Design All times are: Eastern Time (US & Canada) (change)
Page 1 of 1

 
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Categories:
 Windows XP
 Windows Vista
 Windows Other
 Office
  Office Other
 Security
  • Home |
  • Shareware |
  • Windows Tips |
  • Hot Offers |
  • FREE Newsletters |
  • Arcade |
  • Forums |
  • eBooks |
  • About WUGNET |
  • Partners |
  • Contact

  • WUGNET Privacy Policy |
  • Link to WUGNET |
  • IT Support