【问题标题】:Excel Microsoft.ACE.OLEDB.12.0 The connection for viewing your linked Microsoft Excel worksheet was lostExcel Microsoft.ACE.OLEDB.12.0 用于查看链接的 Microsoft Excel 工作表的连接丢失
【发布时间】:2016-05-17 20:38:29
【问题描述】:

我有一个连接到 excel 文件并使用 Microsoft.ACE.OLEDB.12.0 查询数据的 VBscript。我现在只是显示记录计数,但是当我打开文档时,计数是错误的。当excel文档关闭时,是正确的。我现在收到一个错误“查看链接的 Microsoft Excel 工作表的连接已丢失”代码:80004005 来源:Microsoft Access 数据库引擎。我以前曾多次使用 VBScript 提取此数据,但从未出现此错误。

关于造成这种情况的任何想法?

连接字符串是这样的:

cnnExcel.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & strExcelFilePath & ";" & "Extended Properties=" &  Chr(34) & "Excel 12.0 Xml;Readonly=1;HDR=Yes;IMEX=1" & Chr(34) & ";"

记录集是这样的:

rsExcel.open "SELECT * FROM [col$] WHERE [name] <>''", cnnExcel, adOpenStatic, adLockReadOnly

【问题讨论】:

  • 不,没有想法。不过,如果您 show your code,我们可以提供帮助并希望产生一些帮助!
  • 我认为错误信息很清楚。 连接丢失意味着......嗯......连接丢失了。当您的网络浏览器由于您的 ISP 关闭或站点离线而无法刷新页面时,它会告诉您由于无法连接而无法加载页面,这意味着 连接已丢失。在这种情况下,Excel 无法刷新数据,因为它无法与数据源连接,因为连接丢失。当您打开工作簿时,Excel 会尝试刷新数据但不能。我不确定这是怎么不清楚的。

标签: excel vbscript


【解决方案1】:

当它发生在我身上时,我解决了这个问题。我的 SQL 失败,因为源数据在单元格中的记录 ID 为 10054748,该单元格被格式化为导致溢出错误的日期,从而导致另一个非错误列返回 NULL,即使该错误不在查询的列之一中.在任何情况下,该字段的数据都是文本类型,并且从 Toad 和 XL TextToColumns 粘贴复制的记录集导致的错误格式会根据当天早些时候解析的不同数据集自动解析它!解决方案是将该列的格式更改回 General 以消除溢出错误。摘要:可能使用 SQL 和 Microsoft.ACE.OLEDB.12.0 选择的源数据中的任何错误都可能导致返回空值以及引用这些空值的 where 子句的意外失败,源数据应该是干净的,格式应该是最小化且易于理解!

【讨论】:

    猜你喜欢
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多