SQL到VBA:将表从SQL导入excel

时间:2017-05-23 19:21:09

标签: sql-server excel vba excel-vba

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

  

"运行时错误' -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

1 个答案:

答案 0 :(得分:1)

同意评论,最有可能的罪魁祸首是连接字符串。尝试使用“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"