【发布时间】:2016-10-05 13:39:47
【问题描述】:
我想设置一个 vba 代码来连接到 sql management studio 2012 并运行我将在 vba 代码中指定的查询。我已经阅读了关于堆栈溢出的所有类似问题,但是当我尝试复制它们时,我总是收到一个错误,通常是用户登录失败。
我认为我设置了错误的字符串连接。另外,我需要通过 Windows 身份验证进行用户身份验证。
我知道数据库名称、服务器名称和我的用户名。
这是我正在使用的代码,它给了我一个错误。
Sub ConnectionExample6()
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
' Open a connection by referencing the ODBC driver.
cnn.ConnectionString = "driver={SQL Server};" & _
"server=SERVER NAME;uid=USER ID;pwd=MyPassword;database=DATABASE NAME"
cnn.Open
' Create a Recordset by executing an SQL statement.
Set rs = cnn.Execute("Select top 100 * from "TABLE NAME" aac " & _
"where aac.EffectiveDate = '10/04/16'")
' Close the connection.
rs.Close
End Sub
有人可以指导我完成连接字符串以及如何逐步设置它吗?谢谢。
【问题讨论】:
-
错误是:运行时错误'-2147217843 (80040e4d)':[Microsoft][ODBC SQL Server Driver]用户'USER ID'登录失败
-
如果要使用 Windows 身份验证,请不要在连接字符串中提供用户 ID/密码。
-
Mat 搞定了,只要确保所有使用此宏的用户都可以公开访问 SQL 服务器和数据库。或者,将它们添加到具有访问权限的域上的组中。
-
太棒了!非常感谢,它有效!
标签: sql sql-server vba excel