从Excel工作表连接到Access数据库 - 语法错误

问题描述:

嗨我有一个数据库有几个字段,我只想将信息插入其中两个。从excel中提供这些信息;从Excel工作表连接到Access数据库 - 语法错误

Sub testing() 
On Error GoTo errorhandler 

' 
' testing Macro 
' 
' Keyboard Shortcut: Ctrl+d 
' 

    Dim cn As Object 
    Dim rs As Object 
    Dim strSql As String 
    Dim strConnection As String 
    Set cn = CreateObject("ADODB.Connection") 
    strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Database\Path\Here\Database.accdb" 

    strSql = "INSERT INTO Clients (FirstName, Initial Contact) VALUES ('Joe Sixpack', 12/1/2015);" 

    cn.Open strConnection 
    Set rs = cn.Execute(strSql) 

' rs.Close 

    cn.Close 

Exit Sub 
errorhandler: 
    MsgBox (Err.Number & " " & Err.Description) 

End Sub 

我收到一条错误消息“INSERT INTO语句中的语法错误”。但我看看W3学校的SQL文档,我看到

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country) VALUES ('Cardinal','Tom B. Erichsen','Skagen 21','Stavanger','4006','Norway'); 

所以语法看起来正确。我刚刚证实表格名称也是正确的。那么语法错误在哪里?

+0

语法错误是需要被包裹在方括号或反引号列名的空间。此外,日期需要用磅/标签包装。 – Parfait

这不是你如何代表访问日期

INSERT INTO Clients (FirstName, [Initial Contact]) 
    VALUES ('Joe Sixpack', #12/1/2015#) 
+0

谢谢@KenWhite - 更新 –

+0

嗨。现在这是一个不同的错误:它要求我输入更多的字段,但根据我看到的文档,只更新几个字段的方法是指定我想要执行的字段; INSERT INTO客户(客户名称,城市,国家) VALUES('Cardinal','Stavanger','挪威'); NOT INSERT INTO table_name VALUES(value1,value2,value3,...); – bdpolinsky

+0

如果有需要值的字段,并且没有默认设置,则需要包含它们和值。 – Rdster