【问题标题】:Getting errors while trying to open a Excel file with ADO尝试使用 ADO 打开 Excel 文件时出错
【发布时间】:2019-07-19 02:45:40
【问题描述】:

我正在尝试使用带有 SQL 查询的 ADO 从 Excel 文件 (.xls) 中获取一些值。但是,我在尝试打开连接时遇到错误。这是我目前拥有的:

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

strFile = IIf(strPath <> "", strPath, Range("G13").Value)
If strFile = "" Then Exit Sub

strCon = "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile & ";'Extended Properties='Excel 8.0;HDR=No;IMEX=1';"

strCon2 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile & ";'Extended Properties='Excel 12.0 Xml;HDR=YES';"

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

cn.Open strCon2

我已经使用我的两个连接字符串(strCon、strCon2)进行了测试,但没有成功。我要么得到一个没有文本的错误,只有一个“x”符号。或"System Error &amp;H80004005 (-2147467259)"

编辑:

改变了它,所以我打开记录集,但它仍然给我同样的错误。

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

strFile = IIf(strPath <> "", strPath, Range("G13").Value)
If strFile = "" Then Exit Sub

strCon = "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & _
          strFile & "';'Extended Properties='Excel 8.0;HDR=No;IMEX=1';"

strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
    "Data Source=" & strFile & ";" & _
        "Extended Properties=Excel 12.0;"

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

'cn.Open strCon

strSQL = "SELECT * FROM [Sheet11$C5]"

rs.Open strSQL, strConn

Debug.Print rs.GetString

【问题讨论】:

  • 是的,该值被正确引用。 strFile 总是正确的,它在 cn.Open 发生错误
  • 参考这个link。你错过了 sql 和 rs.open 而不是 cn.open。
  • @Dy.Lee 查看我的编辑,错误仍然出现
  • 能否提交strPath和Range("G13").Value?
  • strSQL = "SELECT * FROM [Sheet11$C5]" 似乎是 strSQL = "SELECT * FROM [Sheet11$]"

标签: excel connection-string ado vba


【解决方案1】:

现在回答这个问题为时已晚,但对于未来的读者而言。

我遇到了类似的问题。 我尝试将 Excel 与 MySQL 数据库连接,但是当记录集打开时,它会破裂并显示 &H80004005 错误。

最后,问题是我的办公室是 32 位的,但我的 ODBC 是 64 位的,这不喜欢它。

我将 ODBC 连接更改为 32 位,并且 VBA 功能正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    • 2021-11-02
    • 1970-01-01
    相关资源
    最近更新 更多