excel中的ado,将记录插入access数据库

2024-01-19

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

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

我正在使用的代码是:

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 时遇到如此大的麻烦。

提前致谢!


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

sCommand = "INSERT INTO [Usage] (UName, SomeDate) VALUES ('" & Environ("Username") _
    & "',#" & Now() & "#)"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

excel中的ado,将记录插入access数据库 的相关文章

随机推荐