2016-12-15 6 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

Accessで日付を表現する方法はありません

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

ありがとう@KenWhite - updated –

+0

こんにちは。今は別のエラーです:それはもっと多くのフィールドに入力するように求めていますが、私が見るドキュメントによれば、いくつかのフィールドを更新する方法は、どのフィールドを実行するかを指定することです。 INSERT INTOお客様(CustomerName、City、Country) VALUES( 'Cardinal'、 'Stavanger'、 'Norway'); INSERT INTOテーブル名ではありません VALUES(値1、値2、値3、...); – bdpolinsky

+0

値を必要とするフィールドがあり、デフォルトのセットがない場合は、フィールドと値を含める必要があります。 – Rdster

関連する問題