【问题标题】:Cannot connect to sql server with VBA (Run-time error (80040e14))无法使用 VBA 连接到 sql server(运行时错误 (80040e14))
【发布时间】:2016-06-14 23:53:37
【问题描述】:

我正在尝试连接到我的 Sql 数据库并从中获取一个简单的记录集,运行此代码:

    Sub ConnectToSQL()

    Dim cnn As New ADODB.Connection
    Dim cmd As New ADODB.Command
    Dim rs As New ADODB.Recordset

    With cnn
         .ConnectionString = "File Name=C:\inetpub\tc\TEST.udl"
         .Open
    End With

    With cmd
          .ActiveConnection = cnn
          .CommandType = xlCmdSql
          .CommandText = "SELECT * FROM TEST"
    End With

    rs.Open cmd.Execute, cnn

    If Not rs.EOF Then
           Sheets(1).Range("A1").CopyFromRecordset rs
           rs.Close
    Else
           MsgBox "No records returned", vbCritical
    End If

    cn.Close
    Set cn = Nothing
    Set rs = Nothing

    End Sub

因此我收到运行时错误消息 (80040e14) 这里有什么问题?

谢谢,

【问题讨论】:

  • 你在哪一行得到错误?
  • 就这个:rs.Open cmd.Execute, cnn
  • 哦 - 这只是rs.Open cmd
  • This 可能会有所帮助。
  • 如果您谈论的是 Microsoft SQL Server,那么您可能得到的连接字符串不正确。您可能希望将此解决方案视为连接的样板:stackoverflow.com/a/32567664/1153513

标签: sql-server vba excel


【解决方案1】:

您想尝试关注吗?
如有必要,请不要忘记添加工具> 参考。

Sub ConnectToSQL()    
    Dim cnn As ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim ConnectionString As String

     Set cnn = New ADODB.Connection

    ConnectionString = "File Name=C:\inetpub\tc\TEST.udl"

    cnn.Open ConnectionString
    cnn.CommandTimeout = 900

     strquery = "SELECT * FROM TEST;"

    'MsgBox strquery
    rs.Open strquery, cnn

    If Not rs.EOF Then
           Sheets(1).Range("A1").CopyFromRecordset rs
           rs.Close
    Else
           MsgBox "No records returned", vbCritical
    End If

    cnn.Close
    Set cnn = Nothing
    Set rs = Nothing
End Sub

【讨论】:

    猜你喜欢
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多