第一次提问,通常我可以通过搜索找到答案,但是我的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 上遇到过这么多麻烦。
提前致谢!