2016-12-15 67 views
0

嗨我有一個數據庫有幾個字段,我只想將信息插入其中兩個。從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

回答

2

這不是你如何代表訪問日期

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

相關問題