我正在使用此语法从Excel 2013运行SQL Server 2008存储过程。所有事情都像在一台PC上一样执行,但如果我尝试在第二台PC上运行它,则会出错从VBA运行SQL查询
OLEDB连接错误
不应该因为我硬编码服务器名称,用户名和密码的语法运行瓦特/ OA栓在任何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”提供用户ID和密码是矛盾的。当然,这不是完整的错误信息。 –
@PaulAbbott - 对不起,复制/粘贴错误。我在cmd.ActiveConnection = con中添加了....我只希望能够让打开工作簿的任何用户能够执行到SQL Server的连接。无论打开的计算机如何。 –
那么你想用SQL用户名和密码或当前的Windows登录进行身份验证? –