【发布时间】:2020-03-13 23:35:21
【问题描述】:
我正在尝试通过 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 语句中没有使用数据库。
感谢任何帮助!
谢谢! 詹姆斯
【问题讨论】:
-
如果你有多个语句,你需要用分号结束每个语句。但在这种情况下,我不明白为什么需要多个语句。如果您需要从另一个数据库中选择数据而不是打开连接,您可以简单地使用三部分命名。 “从 Database.schema.table 中选择前 10 个名称”——不要忘记排序依据,这样您就知道要获得哪 10 行。
标签: sql sql-server vba ms-word adodb