ado in excel,将记录插入访问数据库

时间:2013-07-29 08:51:20

标签: sql vba ms-access ado insert-into

第一次提问者,通常我可以通过搜索找到答案,但我今天的google-fu似乎很弱。

我有一个连接到Access 2003数据库的Excel工作簿以插入使用记录

我使用的代码是:

sdbpath = ThisWorkbook.Path & "\Data.mdb"
sCommand = "INSERT INTO Usage VALUES('" & Environ("Username") & "',#" & Now() & "#)"

Dim dbCon As New ADODB.Connection
Dim dbCommand As New ADODB.Command

dbCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sdbpath & "; Jet OLEDB:Database Password=TestPass;"
dbCommand.ActiveConnection = dbCon

dbCommand.CommandText = sCommand
dbCommand.Execute

dbCon.Close

代码在dbCommand.Execute行上失败,运行时错误' -2147217900(80040e14)' :自动化错误。

它试图插入记录的数据库包含一个表,用法,有两列 - UserID和AccessDate,分别格式化为text和DateTime。

奇怪的部分是连接字符串似乎没问题,因为它在连接已经打开后失败了,但是如果我在执行run之前获取sCommand值,那么将它粘贴到访问中的查询中并执行它 - 它运行细!

如果是使用日期时间格式进行访问,我尝试将其切换为文本(以及代码中的主题标签),但仍然失败。我也尝试过指定列名。

任何人都可以了解我做错了什么吗?我用一个非常简单的SQL来解决这个问题。

提前致谢!

1 个答案:

答案 0 :(得分:2)

在Access中,我们需要指定字段名称。即便如此,我发现在插入之前我需要将表名包装在方括号中:

sCommand = "INSERT INTO [Usage] (UName, SomeDate) VALUES ('" & Environ("Username") _
    & "',#" & Now() & "#)"