我在ms Access中使用VBA运行SQL语句。当我尝试运行它时,它始终显示“ create table语句中的语法错误”。你能发现我的错误吗?我已经尝试了3个多小时...
Private Sub Btn_create report_Click()
Dim SQL_2 As String
SQL_2 ="CREATE TABLE TR_Customer_data" & _
"[Field 1] CHAR(30) DEFAULT '1'" & _
"[Field 2] CHAR(30) DEFAULT 'MCR'" & _
"[Field 3] CHAR(30) DEFAULT 'GE34567'" & _
"[Field 4] CHAR(30) DEFAULT 'apple and bananas'" & _
"[Field 5] CHAR(30)" & _
"[Field 6] CHAR(30)" & _
"[Field 7] CHAR(30) DEFAULT '192.0.0.1'" & _
"[Field 8] CHAR(30)" & _
"[Field 9] CHAR(30)" & _
"[Field 10] CHAR(30)" & _
"[Field 11] CHAR(30) DEFAULT 'CPR'" & _
"[Field 12] CHAR(30) DEFAULT '7.0'" & _
"[Field 13] CHAR(30)" & _
"[Field 14] CHAR(30)" & _
"[Field 15] CHAR(30)" & _
"[Field 16] CHAR(30)" & _
"[Field 17] CHAR(30)" & _
"[Field 18] CHAR(30) DEFAULT '[email protected]'" & _
"[Field 19] CHAR(30) DEFAULT '[email protected]'" & _
"[Field 20] CHAR(30) DEFAULT 'town/city'" & _
"[Field 21] CHAR(30)"
DoCmd.RunSQL SQL_2`
End Sub
您能帮我发现我的错误吗?
有效的Access DDL CREATE TABLE
语句应在表名后的一对括号内包含用逗号分隔的字段定义列表。您的问题中的代码所建立的语句缺少逗号和括号。
这是我在Access 2010中测试的有效语句:
CREATE TABLE TR_Customer_data ([Field 1] CHAR(30) DEFAULT "1",[Field 2] CHAR(30) DEFAULT "MCR")
我使用此VBA构建并执行该语句:
Dim SQL_2 As String
SQL_2 = "CREATE TABLE TR_Customer_data (" & _
"[Field 1] CHAR(30) DEFAULT ""1""," & _
"[Field 2] CHAR(30) DEFAULT ""MCR"")"
Debug.Print SQL_2
'DoCmd.RunSQL SQL_2 '<- No! Will not support `DEFAULT` keyword
CurrentProject.Connection.Execute SQL_2
注意:
DEFAULT
不支持DoCmd.RunSQL
...它将始终为您提供错误3290,“ CREATE TABLE语句中的语法错误。”从CurrentProject.Connection
或通过使用OleDb。