【问题标题】:ado in excel, inserting records into access databaseado在excel中,将记录插入到access数据库中
【发布时间】: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


    【解决方案1】:

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

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

    【讨论】:

    • 啊,谢谢 - 不记得 Usage 是保留字。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-11
    相关资源
    最近更新 更多