在 Excel-VBA 中访问 SQL 数据库:连接字符串故障排除
在从 Excel-VBA 访问 SQL 数据库时,用户可能会遇到以下情况运行时错误:“对象关闭时不允许进行操作。”尝试将数据从记录集复制到 Excel 区域时。此错误通常表示连接字符串或记录集状态存在问题。
此问题的一个潜在原因是连接字符串的规范不正确。确保提供所有必要的参数,包括数据库名称和任何所需的凭据。原始代码片段中提供的连接字符串缺少初始目录参数,该参数指定要连接的数据库。
通过将初始目录参数添加到连接字符串并使用更简单的方法来执行 SQL 语句直接(而不是 ADODB.Command 对象),问题就可以解决。下面修改后的代码包括必要的修改:
Sub GetDataFromADO() 'Declare variables' Set objMyConn = New ADODB.Connection Set objMyRecordset = New ADODB.Recordset Dim strSQL As String 'Open Connection' objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=MyDatabase;User ID=abc;Password=abc;" objMyConn.Open 'Set and Excecute SQL Command' strSQL = "select * from myTable" 'Open Recordset' Set objMyRecordset.ActiveConnection = objMyConn objMyRecordset.Open strSQL 'Copy Data to Excel' ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset) End Sub
以上是为什么在 Excel-VBA 中访问 SQL 数据库时出现'对象关闭时不允许操作”?的详细内容。更多信息请关注PHP中文网其他相关文章!