【发布时间】:2013-07-29 08:51:20
【问题描述】:
第一次提问,平时搜索就能找到答案,但是今天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)”:自动化错误。
试图将记录插入的数据库包含一个表usage,其中包含两列-UserID 和AccessDate,格式分别为文本和日期时间。
奇怪的部分是连接字符串似乎没问题,因为它在连接已经打开后失败,但是如果我在运行执行之前获取 sCommand 值,然后将其粘贴到访问中的查询中并执行它 - 它运行很好!
如果在访问日期时间格式时遇到困难,我尝试将其切换为文本(以及代码中的主题标签),但仍然失败。我也尝试过指定列名。
谁能解释我做错了什么?我从来没有在一个非常简单的 SQL 上遇到过这么大的麻烦。
提前致谢!
【问题讨论】:
标签: sql vba ms-access ado insert-into