首页 > 解决方案 > 使用服务器、数据库名称和表的 VBA sql 查询

问题描述

我正在尝试通过 VBA 访问 ms SQL 服务器数据库以执行查询并将结果输出到 Microsoft Word 表中。

数据库位于服务器上。代码如下:

Sub SQLConnect2()
    Debug.Print "Start"

    Dim cn As Object
    Dim rs As Object
    Dim ConnectionString As String
    Dim StrQuery As String
    Dim strFirstName As String

    ConnectionString = "Provider=SQLOLEDB;Data Source=Server;Trusted_connection=yes;"
    Debug.Print ConnectionString

    Set cn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")

    cn.Open ConnectionString

    StrQuery = "USE Database SELECT TOP 10 name as Title FROM table"


    rs.Open StrQuery, cn

    Debug.Print StrQuery
    Debug.Print rs.RecordCount

End Sub

然而,这给了我运行时错误,因为它说记录集已关闭,我相信这是因为查询不起作用,但是当我将查询复制并粘贴到 SSMS 中时,它确实按预期工作。

我相信这可能是由于它连接到服务器然后没有在use语句中使用数据库。

任何帮助表示赞赏!

谢谢!詹姆士

标签: sqlsql-servervbams-wordadodb

解决方案


您可能需要更改连接字符串以包含数据库名称:

ConnectionString = "Provider=SQLOLEDB;Data Source=Server;Initial Catalog=YourDataBase; Integrated Security=SSPI;"

并删除查询中的使用数据库。

请参阅https://www.connectionstrings.com/sql-server/


推荐阅读