2013-12-14 5 views
0

Когда я использую этот код для создания таблицы в моем доступе db, я получаю сообщение об ошибке, сообщающее, что в моем создающем предложении есть синтаксическая ошибка Что я делаю неправильно.Синтаксическая ошибка при создании таблицы

Dim min_path As String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase) 
Dim min_path_trimmed As String = Replace(min_path, "file:\", "") 

Dim SQL As String 
Dim objCmd As New OleDbCommand 
Dim Con = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + min_path_trimmed + "\db.mdb") 
SQL = "CREATE TABLE Names (LastName VARCHAR(30), FirstName VARCHAR (30))" 
Con.Open() 
objCmd = New OleDbCommand(SQL, Con) 
objCmd.ExecuteNonQuery() 
Con.Close() 
MsgBox("Table has been created") 
+0

Возможно, пространство между 'VARCHAR' и' (30) 'в столбце' FirstName'? – Tim

+0

MS Access не имеет только тип данных VarChar Тип текстовых данных см. Мой ответ ниже – Jade

ответ

0

Попробуйте изменить свой запрос от

SQL = "CREATE TABLE Names (LastName VARCHAR(30), FirstName VARCHAR (30))" 

в

SQL = "CREATE TABLE Names (LastName Text(30), FirstName Text(30))" 
+0

Не имеет никакого значения. – Zjitzu

+0

Хорошо, я думал, что вы используете ADOX, потому что вы не можете просто создать таблицу, используя команду OLEDB, см. Эту ссылку. HOPE эту помощь вы http://support.microsoft.com/kb/317867 или http://www.codeguru.com/ VB/GEN/vb_database/microsoftaccess/article.php/c5149/Create-A-Microsoft-Access-Database-Using-ADOX-и-Visual-Basic-NET.htm – Jade

0

Привет это способ создать таблицу в базе данных

Dim databaseName As String = "D:\NewDB.mdb" 

    Dim tableName As String = "Employee" 


    Dim con As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\NewDB.mdb") 

    con.Open() 

    Dim dbSchema As DataTable = con.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, tableName, "TABLE"}) 

    con.Close() 


     Dim cmd As New OleDb.OleDbCommand("CREATE TABLE [" + tableName + "] ([EmpName] TEXT(10), [EmpAddress] TEXT(10))", con) 

     con.Open() 

     cmd.ExecuteNonQuery() 

     MessageBox.Show("Table Created Successfully") 

     con.Close() 

Если вы получаете любой ошибки, пожалуйста, напишите

Буду рад помочь.

С уважением.

Смежные вопросы