The .Item("Key").Properties("AutoIncrement") = True
is not setting the column type to autoincrement number. It says it's read only, but it's in the microsoft official website. This was in the older non updated version of microsoft docs https://learn.microsoft.com/en-us/previous-versions/office/developer/office2000/aa164917(v=office.10)
Seems like it doesn't work now for Visual studio 2012 vb.net
How to set the column "key" as an auto increment number
?
Error
Property 'Item' is 'ReadOnly'
Imports ADOX
Imports ADOX.DataTypeEnum
Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click
Dim DB1_file_name As String = "\DB3.mdb"
Dim catDB As ADOX.Catalog
Dim tblNew As ADOX.Table
Dim catstring As String
catDB = New ADOX.Catalog
' Open the catalog.
'catDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.UserAppDataPath & "\DB1.mdb"
catstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.UserAppDataPath & DB1_file_name
catDB.Create(catstring)
'catDB.ActiveConnection = catstring
tblNew = New ADOX.Table
' Create a new Table object.
With tblNew
.Name = "Contacts"
With .Columns
.Append("Key", adInteger)
.Item("Key").Properties("AutoIncrement") = True
.Append("FirstName", adVarWChar)
.Append("LastName", adVarWChar)
.Append("Phone", adVarWChar)
.Append("Notes", adLongVarWChar)
End With
End With
' Add the new Table to the Tables collection of the database.
catDB.Tables.Append(tblNew)
catDB = Nothing
End Sub
P.S: Updated code - still gets errors
The connection cannot be used to perform this operation. It is either closed or invalid in this context.
Imports ADOX
Imports ADOX.DataTypeEnum
Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click
Dim DB1_file_name As String = "\DB3.mdb"
Dim catDB As ADOX.Catalog
Dim tblNew As ADOX.Table
Dim catstring As String
catDB = New ADOX.Catalog
' Open the catalog.
'catDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.UserAppDataPath & "\DB1.mdb"
catstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.UserAppDataPath & DB1_file_name
catDB.Create(catstring)
'catDB.ActiveConnection = catstring
tblNew = New ADOX.Table
' Create a new Table object.
With tblNew
.Name = "Contacts"
.ParentCatalog = catDB
With .Columns
.Append("Key", adInteger)
.Item("Key").Properties("AutoIncrement").Value = True
.Append("FirstName", adVarWChar)
.Append("LastName", adVarWChar)
.Append("Phone", adVarWChar)
.Append("Notes", adLongVarWChar)
End With
End With
' Add the new Table to the Tables collection of the database.
catDB.Tables.Append(tblNew)
catDB = Nothing
End Sub