首页 >数据库 >mysql教程 >如何修复在 Excel VBA 中访问 SQL 数据库时出现的运行时错误 3704?

如何修复在 Excel VBA 中访问 SQL 数据库时出现的运行时错误 3704?

Susan Sarandon
Susan Sarandon原创
2025-01-04 08:27:39279浏览

How to Fix Run-time Error 3704 When Accessing SQL Databases in Excel VBA?

在 Excel-VBA 中访问 SQL 数据库:解决运行时错误 3704

使用 VBA 代码从 SQL 数据库访问数据时,尝试时可能会遇到错误将数据从记录集复制到 Excel。具体来说,当关闭记录集对象时,会出现错误“运行时错误 3704:对象关闭时不允许操作”。

要解决此问题:

  1. 验证数据库可访问性:确保数据库可以通过VBA访问。确保数据库正在运行,连接字符串正确,并且用户具有访问数据库所需的权限。
  2. 将初始目录添加到连接字符串:修改连接字符串以包括初始目录,代表数据库名称。例如:
objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=MyDatabase;User ID=abc;Password=abc;"
  1. 直接打开记录集:您可以使用 SQL 语句直接打开记录集,而不是使用 ADODB.Command 对象。以下是更新的代码片段:
Const adCmdText As Long = 1
Dim strSQL As String

... // Other code above

' Open Recordset'
Set objMyRecordset.ActiveConnection = objMyConn
strSQL = "select * from myTable"
objMyRecordset.Open strSQL            

... // Rest of the code below

通过进行这些调整,您应该能够使用 VBA 成功将数据从 SQL 数据库复制到 Excel,而不会遇到运行时错误 3704。

以上是如何修复在 Excel VBA 中访问 SQL 数据库时出现的运行时错误 3704?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn