【发布时间】:2016-11-30 00:25:54
【问题描述】:
我正在使用此语法从 Excel 2013 运行 SQL Server 2008 存储过程。一切都在一台 PC 上按应有的方式执行,但如果我尝试在第二台 PC 上运行它,则会出错并显示
OLEDB 连接错误
既然我对服务器名、用户名和密码进行了硬编码,那么语法是否应该在任何 PC 上运行都没有问题?
Function RunSQLServerProc()
Dim con As ADODB.Connection
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset
Set con = New ADODB.Connection
Set cmd = New ADODB.Command
Set rs = New ADODB.Recordset
con.Open "Provider=SQLOLEDB;Data Source=Server;Initial Catalog=Database;User Id=userid;Password=password;Integrated Security=SSPI;Trusted_Connection=Yes;"
cmd.ActiveConnection = con
cmd.CommandText = "TestProc"
Set rs = cmd.Execute(, , adCmdStoredProc)
End Function
【问题讨论】:
-
这真的执行了吗?我看不到您将连接分配给命令的位置。此外,用
Integrated Security=SSPI提供用户名和密码是矛盾的。当然,这不是整个错误消息。 -
@PaulAbbott - 抱歉,复制/粘贴错误。我添加了 cmd.ActiveConnection = con ...。我只希望能够让任何打开工作簿的用户能够执行与 SQL Server 的连接。无论在哪台计算机上打开它。
-
那么您是尝试使用 SQL 用户名和密码还是当前的 Windows 登录名进行身份验证?
-
我想使用 SQL 用户名和密码进行身份验证。
-
然后把
Integrated Security=SSPI拿出来。
标签: sql-server vba excel excel-2013