【问题标题】:SQL to VBA: Error importing table from SQL into excelSQL 到 VBA:将表从 SQL 导入 excel 时出错
【发布时间】:2017-05-24 05:27:12
【问题描述】:

在下面的代码中,我不断收到一条错误消息:

“运行时错误'-2147467259 (80004005)':未指定自动化错误 错误”

当我尝试打开连接时弹出错误。我要做的就是将本地 SQL DB 中的数据导入到 excel 中。

我不知道这是否重要,但我使用的是 SQL server 2014 express。

Sub connect()
Dim conn As ADODB.Connection
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset
Dim strConn As String
Dim connstr As String
Dim strSRV As String
Dim strDB As String
Dim sql_login As String


sqlquery = "SELECT top 10 * FROM [Source Contacts];"


connstr = "Driver={SQL Server native Client 11.0};Server=(LocalDB)\v11.0;AttachDBFileName=C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\SIT23DL_Validation.mdf;Database=SIT23DL_Validation;Trusted_Connection=Yes"

'Create the Connection and Recordset objects
Set conn = New ADODB.Connection
conn.ConnectionString = connstr
conn.Open


Set rs = conn.Execute(sqlquery)

If Not rs.EOF Then
    'Transfer result
    Sheets(1).Range("A1").CopyFromRecordset rs

'Close Recordset
rs.Close

Else
    MsgBox "Error: No records returned.", vbCritical
End If

'Clean up
If CBool(conn.State And adStateopen) Then conn.Close
Set conn = Nothing
Set rs = Nothing
End Sub

【问题讨论】:

  • 三重检查 connstr 是否完全按照需要编写。
  • @ScottHoltzman 是的 (localdb)\v11.0 看起来很可疑
  • 我基于我在 msdn 上找到的关于如何从本地数据库导入 sql 表的线程。 (social.msdn.microsoft.com/Forums/en-US/…)
  • 也许你需要If rs Is Nothing Thenthis post中的建议
  • 已经试过了。没有运气

标签: sql-server vba excel


【解决方案1】:

同意cmets,最有可能的罪魁祸首是连接字符串。尝试使用“Microsoft SQL Server Management Studio”连接到您的 SQL 实例,并通过该接口(而不是通过连接字符串)附加数据库。如果一切正常,您可以尝试以下操作(您可能需要将 localhost 替换为您的实际机器名称):

connstr  = "Provider=SQLOLEDB;Data Source='localhost\v11.0';Initial Catalog='SIT23DL_Validation';Integrated Security=SSPI;Trusted_Connection=Yes"

【讨论】:

  • 非常感谢!像魅力一样工作。
猜你喜欢
  • 2013-03-27
  • 1970-01-01
  • 2021-02-25
  • 2020-10-30
  • 2016-08-08
  • 1970-01-01
  • 2017-11-26
  • 1970-01-01
  • 2013-01-16
相关资源
最近更新 更多