打开 ADODB 记录集时出现系统错误

问题描述

我制作了一个执行以下操作的宏:

  • 识别用 Excel 编写的 sql 代码(使用命名范围)
  • 创建/保存包含 sql 查询的文本文件
  • 通过与 sql Server Management Studio 18 的 ADODB 连接运行 sql 查询
  • 将结果记录集返回到 Excel(我有 32 位版本)

我已经测试了许多查询代码,它按预期工作。但是,通过一个查询,我在尝试打开记录集时收到“系统错误和 H80004005 (-2147467259)”(“rs.open”行)。此查询(存储在“rs.source”中)的唯一显着特点是:

  • 查询异常长(大约 1,500 行,而其他查询大约 500 行)
  • 它产生很多记录(四个输出表。两个很小,两个每个大约有 35,000 条记录)
  • 它访问 sql 中的许多数据表(9 个表)

在运行了几次诊断后,我非常有信心:

我的连接字符串是正确的: 我已成功将相同的连接字符串用于同一服务器上的其他 sql 查询

sql 查询正确,并且存储正确:我已成功在 sql Server Management Studio 中手动复制、粘贴和运行文本文件(由 VBA 代码生成)。 >

记录集的源(在 VBA 中)能够保存整个查询:将记录集的源分配给文本文件后,我将记录集的源写入新的文本文件以确保它是存储整个查询。原来如此。

这不是正在生成的记录或表的数量我编辑了查询,以便只生成一个小记录集,但我仍然遇到相同的错误

我试图找到其他遇到类似错误的帖子,但似乎没有太多关于这个问题的帖子(以及我发现的与管理插件相关的建议解决方案)。我将附上一段代码,该代码在 rs.Open 行中出错。我对 VBA 比较陌生,对 sql 非常陌生(我没有编写任何这些 sql 查询),所以如果我遗漏了一些明显的东西,我深表歉意。感谢您的任何指导。 Code Snippet

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)