【发布时间】: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