PC Review


Reply
Thread Tools Rate Thread

Adding a key to MS Access Table

 
 
=?Utf-8?B?QXJ0?=
Guest
Posts: n/a
 
      8th Apr 2004
Hi everyone

I was hoping someone might be able to help me with this. I'm just starting to try to work with MS Access tables through VB.net. In Access I can take an existing table and add a new field with the type AutoNumber. I can then set this up as a key. Then if I go into the table I will see sequential numbers have been inserted into that field for me. Can I do this through VB.net

I'd appreciate any help or alternative suggestions

Thanks very much

Art
 
Reply With Quote
 
 
 
 
harry
Guest
Posts: n/a
 
      9th Apr 2004

Below is copy of an old post. This may help you get started.


Hi Frank,

I tried both your sample and the post by Josef on 02/13/2004, however as
weird as it appears, all solutions still return error: "Item is ReadOnly"

I searched net and all samples I found were same/similat to both your's and
MSDN

However, for your ref and anyone else pulling their hair out with this crazy
problem, I found (stumbled across) a solution...

..Item("Reference").ParentCatalog = cat
..Item("Reference").Properties("AutoIncrement").Value = True

'and if you like to set seed + increment values...

..Item("Reference").Properties.Item("Seed").Value = 1 'or whatever your
preference
..Item("Reference").Properties.Item("Increment").Value = 1 'or whatever your
preference

Regards
Harry



"Frank Hickman" <fhickman_nosp@m_noblesoft.com> wrote in message
news:PNGdnYYZcr6CVt_dRVn-(E-Mail Removed)...
> Try adding this line prior to setting the property...
>
> .Item("ContactId").ParentCatalog = catDB;
>
> My VB is a little rusty so you may have to tweak it
>
>
> Sub CreateAutoNumberField(strDBPath As String)
> Dim catDB As ADOX.Catalog
> Dim tbl As ADOX.Table
>
> Set catDB = New ADOX.Catalog
> ' Open the catalog.
> catDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
> "Data Source=" & strDBPath
>
> Set tbl = New ADOX.Table
> With tbl
> .Name = "Contacts"
> Set .ParentCatalog = catDB
> ' Create fields and append them to the
> ' Columns collection of the new Table object.
> With .Columns
> .Append "ContactId", adInteger
> ' Make the ContactId field auto-incrementing.
> .Item("ContactId").ParentCatalog = catDB;
> .Item("ContactId").Properties("AutoIncrement") = True
> .Append "CustomerID", adVarWChar
> .Append "FirstName", adVarWChar
> .Append "LastName", adVarWChar
> .Append "Phone", adVarWChar, 20
> .Append "Notes", adLongVarWChar
> End With
> End With
>
> ' Add the new Table to the Tables collection of the database.
> catDB.Tables.Append tbl
>
> Set catDB = Nothing
> End Sub
>
> This solution was posted by Josef Blösl on 02/13/2004 in a reply to my

reply
> about the same subject. My solution was somewhat different so if the

above
> does not work for you, you may want to try that instead. Which was to go
> ahead and append the table to the catalog and then set the column

property.
> But his solution should work as appending the table essentially does this
> too.
>
> HTH
> --
> ============
> Frank Hickman
> NobleSoft, Inc.
> ============
> Replace the _nosp@m_ with @ to reply.
>
>
> "harry" <harry@nospam> wrote in message
> news:uNA2FOz$(E-Mail Removed)...
> > Previously posted on microsoft.public.data.oledb
> >
> > Hi,
> >
> > I'm trying to create AutoIncrement column in a new Access database table
> > via ADOX.
> > I am using MSDN sample code however I still receive error: Property

> 'Item'
> > is 'ReadOnly'
> >
> > The line triggering the error is:
> > .Item("ContactId").Properties("AutoIncrement") = True
> >
> > I'm using MDAC 2.8 and VB.NET
> >
> > How do I create AutoIncrement column when creating new table using ADOX

?
> >
> > Thanks
> > Harry
> >
> > This is the Sample I tried...
> >
> >

>

http://msdn.microsoft.com/library/de...cesstables.asp
> >
> > Sub CreateAutoNumberField(strDBPath As String)
> > Dim catDB As ADOX.Catalog
> > Dim tbl As ADOX.Table
> >
> > Set catDB = New ADOX.Catalog
> > ' Open the catalog.
> > catDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
> > "Data Source=" & strDBPath
> >
> > Set tbl = New ADOX.Table
> > With tbl
> > .Name = "Contacts"
> > Set .ParentCatalog = catDB
> > ' Create fields and append them to the
> > ' Columns collection of the new Table object.
> > With .Columns
> > .Append "ContactId", adInteger
> > ' Make the ContactId field auto-incrementing.
> > .Item("ContactId").Properties("AutoIncrement") = True
> > .Append "CustomerID", adVarWChar
> > .Append "FirstName", adVarWChar
> > .Append "LastName", adVarWChar
> > .Append "Phone", adVarWChar, 20
> > .Append "Notes", adLongVarWChar
> > End With
> > End With
> >
> > ' Add the new Table to the Tables collection of the database.
> > catDB.Tables.Append tbl
> >
> > Set catDB = Nothing
> > End Sub
> >
> >
> >
> >
> >
> >

>
>








"Art" <(E-Mail Removed)> wrote in message
news:E99CD7F0-BA9C-4171-BF0F-(E-Mail Removed)...
> Hi everyone,
>
> I was hoping someone might be able to help me with this. I'm just

starting to try to work with MS Access tables through VB.net. In Access I
can take an existing table and add a new field with the type AutoNumber. I
can then set this up as a key. Then if I go into the table I will see
sequential numbers have been inserted into that field for me. Can I do this
through VB.net?
>
> I'd appreciate any help or alternative suggestions.
>
> Thanks very much,
>
> Art



 
Reply With Quote
 
harry
Guest
Posts: n/a
 
      9th Apr 2004
Also this old post may be useful...


"Miha Markic" <miha at rthand com> wrote in message
news:OTbtt4$(E-Mail Removed)...
> Hi,
>
> The first thing to change is identityseed/step on DataTable to negative
> values.
> Read also this:
>
> HOW TO: Retrieve an Identity Value from a Newly Inserted Record from
> SQL Server by Using Visual C# .NET
>
>

http://support.microsoft.com/default...Product=vcSnet
> and
> Managing an @@IDENTITY Crisis
>
>

http://msdn.microsoft.com/library/de...anidcrisis.asp
> --
> Miha Markic - RightHand .NET consulting & software development
> miha at rthand com
> www.rthand.com
>
>
> "harry" <harry@nospam> wrote in message
> news:OXeEOy$(E-Mail Removed)...
> > Hi,
> >
> > I am unable to insert new rows into an SQL table with a Identity Column

> (The
> > Identity column is also the Primary Key).
> >
> > The table is a new empty table, and the Identity column is set to Seed=1

> and
> > Increment=1
> >
> > The error I receive when attempting to insert 3 new rows is:
> > Column RecNum is contrained to be unique. Value '1' is already present.
> >
> > These are the values being inserted.
> >
> > 0 1188110 False 3
> > 1 1216300 False 4
> > 2 1182714 False 3,4
> >
> > The first Column with IDENTITY value=0 is inserted however as it is the
> > first row it's Identity is set to 1. Therefore the subsequent row with
> > Identity=1 triggers exception I guess?
> >
> > How do I solve this? Shouldn't ADO.NET manage this bu itself?
> >
> > Thanks
> > Harry
> >
> >
> >
> >

>
>






"Art" <(E-Mail Removed)> wrote in message
news:E99CD7F0-BA9C-4171-BF0F-(E-Mail Removed)...
> Hi everyone,
>
> I was hoping someone might be able to help me with this. I'm just

starting to try to work with MS Access tables through VB.net. In Access I
can take an existing table and add a new field with the type AutoNumber. I
can then set this up as a key. Then if I go into the table I will see
sequential numbers have been inserted into that field for me. Can I do this
through VB.net?
>
> I'd appreciate any help or alternative suggestions.
>
> Thanks very much,
>
> Art



 
Reply With Quote
 
Cor Ligthert
Guest
Posts: n/a
 
      9th Apr 2004
Hi Art,

Yes however keep in mind that when you are working with a dataset the real
number is given at the moment the dataset is updated in the database.
(Because the dataset is disconnected when you are working with it).

When you than "fill" it back from the database in your dataset you get the
real number.

Cor


 
Reply With Quote
 
=?Utf-8?B?QXJ0?=
Guest
Posts: n/a
 
      9th Apr 2004
Harry

Thanks very much! I haven't yet tried to implement the stuff in your response. Since I'm fairly new at VB.net, I seem to get "bonus" information everytime I post a question. I was just "barely" familiar with how to deal with MS Access tables, and the information you provided showed me much more than I had asked. So thanks again

Art
 
Reply With Quote
 
=?Utf-8?B?QXJ0?=
Guest
Posts: n/a
 
      9th Apr 2004
Cor

Thanks for the warning! As I'm fairly new to this, it's likely that I would have spent some time trying to figure out why my data didn't look right

Art
 
Reply With Quote
 
Paul Clement
Guest
Posts: n/a
 
      12th Apr 2004
On Thu, 8 Apr 2004 13:51:05 -0700, Art <(E-Mail Removed)> wrote:

¤ Hi everyone,
¤
¤ I was hoping someone might be able to help me with this. I'm just starting to try to work with MS Access tables through VB.net. In Access I can take an existing table and add a new field with the type AutoNumber. I can then set this up as a key. Then if I go into the table I will see sequential numbers have been inserted into that field for me. Can I do this through VB.net?
¤
¤ I'd appreciate any help or alternative suggestions.
¤

You can use Access SQL DDL:

ALTER TABLE Table4 ADD COLUMN IDField COUNTER CONSTRAINT PrimaryKey PRIMARY KEY


Paul ~~~ (E-Mail Removed)
Microsoft MVP (Visual Basic)
 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Adding rows to Access/SQL table dmacpherson via AccessMonster.com Microsoft Access ADP SQL Server 2 31st Mar 2006 06:02 AM
Adding 1 row in a table in access? keri Microsoft Access 7 22nd Feb 2006 02:22 PM
Problem adding new row in Access Table =?Utf-8?B?UlBL?= Microsoft VB .NET 3 9th Feb 2006 01:24 AM
Access to onclick events of button controls within dynamically created table + adding linked image to table cell Hrvoje Vrbanc Microsoft ASP .NET 0 11th Mar 2004 03:00 PM
Adding Records to Access Table Mark Microsoft Excel Programming 0 25th Nov 2003 10:54 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 03:41 AM.