sql - 使用服务器、数据库名称和表的 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语句中使用数据库。
任何帮助表示赞赏!
谢谢!詹姆士
解决方案
您可能需要更改连接字符串以包含数据库名称:
ConnectionString = "Provider=SQLOLEDB;Data Source=Server;Initial Catalog=YourDataBase; Integrated Security=SSPI;"
并删除查询中的使用数据库。
推荐阅读
- spring-boot - Spring Cloud Stream:@StreamListener 处理消息两次
- sql - 如果基于此脚本设置回滚事务,脚本是否会获取光标中的下一项?
- css - 为什么 Devextreme 网格溢出它的父容器,为什么它没有创建垂直滚动条?
- excel - excel验证自定义函数
- amazon-web-services - 使用 c4.4xlarge 实例(5GB 数据)在 AWS 上出现内存错误和死内核
- python - 用 keras、tensorflow 和 python 编写这种奇特的神经网络架构
- ansible - 无法在 jinja2 语法中的大括号内添加大括号
- batch-file - Kodi - 通过运行 .bat / VBScript 打开 .strm 文件
- php - 如何在 PHP 中转义 mime_content_type 的绝对路径
- javascript - :nth-child(2) 不起作用。:nth-child(1) 和 :nth-child(3) 做