Click here to Skip to main content
15,886,199 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I have install ms-office 2007. I check that my table is exist in access(.accdb) database. I write the query in below:
'SELECT MSysObjects.Name FROM MSysObjects WHERE MSysObjects.Name = tablename'
this above query is running in MS-Access 2007.

When this above query is running through vb.net their arise a error msg ('no read permission MSysObjects')
Posted
Updated 17-Nov-11 1:10am
v2
Comments
Slacker007 17-Nov-11 6:31am    
Not a good idea to be messing around with MSysObjects table(s). They are needed to run Access and thus they are hidden by design.

Your second question, requires you to manipulate the table structure (obviously). The best way to do this, I have found is through OleDb or ADO. There is plenty of info on the internet for this.

Good luck.
Kschuler 17-Nov-11 12:15pm    
You posted this question three times. Please do not do that. If you have more information to add to an already existing question you can go to that question and click the Improve question button to revise it.

If what you are trying to accomplish is to get a list of tables in the database, you may want to go about it a different way. Instead of a query to the MSysObjects you could use a .GetSchema on the connection. I used this code for an Access 2003 database, it's probably a bit different for 2007 but they must have something similar. At least it would be a place for you to start researching.

VB
Dim dtTables As New DataTable
Dim tempConn As New OleDb.OleDbConnection(gblstrConnectionString)

If tempConn.State <> ConnectionState.Open Then
    tempConn.Open()
End If

Dim tblRestrictions As String() = New String() {Nothing, Nothing, Nothing, "TABLE"}
dtTables = tempConn.GetSchema("tables", tblRestrictions)

'Now you have a table full of information about the tables in the database

For Each row as DataRow In dtTables.Rows 'Loop through each table
   'Add code here to do whatever you want with each table,
   'for example if you want to get the table name:
   Dim strTableName as String = row("Table_Name").ToString.Trim
Next
 
Share this answer
 
Solution for 2nd problem:-

In create table query write like this....Create Table table_name (field_name counter , field_name2 ....)
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900