【问题标题】:Getting error as Run-time error '-2147467259(800004005)': Automation error Unspecified error将错误作为运行时错误“-2147467259(800004005)”:自动化错误未指定错误
【发布时间】:2019-09-09 08:15:21
【问题描述】:

出现运行时错误“-2147467259(800004005)”: 自动化错误 rs.update 语句中的未指定错误。

Excel 宏的新手并第一次使用它。请帮忙

下面是使用的代码

Sub dbconnection()
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection

   Dim rs As New ADODB.Recordset
   Dim sqlstr As String
   Dim strconn As String

   strconn = "Driver={SQL Server};Server=testing;Database=testdb;UID=sa;PWD=s123*"
   cn.Open strconn

   sqlstr = "select * from testing124(nolock)"
   rs.Open sqlstr, strconn, adOpenDynamic, adLockOptimistic
   rs.AddNew
   rs!ID = Cells(2, "a").Value
   rs!remarks = Cells(3, "a").Value
   rs.Update
   rs.Close
   cn.Close
   Set cn = Nothing

【问题讨论】:

  • rs!IDrs!remarks 的语法无效。请检查并确保您准确地显示您在 Excel 中使用的代码。不要重新键入它总是复制/粘贴。
  • 使用空连接字符串 ( strconn = "" ) 我得到同样的错误!驱动安装了吗?参数是否正确? (见https://www.connectionstrings.com/)通过单步调试你的代码!如果您建立连接并且只从数据库中读取值,请创建一个代码示例!
  • 连接字符串有效并且能够从数据库中读取值。还有什么需要检查的?请帮忙。
  • @chrisneilsen 呵呵,谢谢你的链接。以前从未遇到过:o

标签: excel vba


【解决方案1】:

我确实在 C:\temp\test.accdb 中创建了一个空的 MS Access 数据库和一个包含一些示例条目的表“testtable”。下面的代码在引用“Microsoft ActiveX Data Objects 2.8 Library”(工具 -> 参考)后确实将此示例数据集读入了 excel 工作表:

Option Explicit

Sub dbconnection()

Dim cn As ADODB.Connection
Set cn = New ADODB.Connection

    Dim rs As New ADODB.Recordset
    Dim sqlstr As String
    Dim strconn As String

    strconn = "DSN=MS Access Database;DBQ=C:\temp\test.accdb;"
    cn.Open strconn

    sqlstr = "select * from testtable"
    rs.Open sqlstr, cn

    ActiveSheet.Range("A1").CopyFromRecordset rs

    rs.Close
    cn.Close
    Set cn = Nothing

End Sub

【讨论】:

  • 能够从数据库中读取值,但插入新行会引发该错误。请帮忙。
  • 声明Cells(2, "a").Value 毫无意义! Cells(1,1).valueRange("A1").value 相同
  • 如何在您的数据库中定义字段“ID”?该字段是否允许值?
  • 你在哪一行得到错误? rs.open? rs.AddNew? rs.Update?
  • rs.Update 行中抛出错误
猜你喜欢
  • 1970-01-01
  • 2019-05-11
  • 1970-01-01
  • 2016-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多