我在Excel电子表格中创建一个宏,该宏将使用SQL Server身份验证连接到SQL Server实例。这是我以前写的一个我知道有效的再生功能。我怀疑它是我构建SQL身份验证的连接字符串的方式,还是用户配置的方式(尽管我已经通过SSMS成功登录到服务器,因此我知道帐户工作)。
Public Function GetConnection(ServerLocation As String, db As String) As ADODB.Connection
Dim ServerName As String, cn As ADODB.Connection, un As String, pw As String
un = "MyUser"
pw = "MyPassword"
ServerName = "MyServer"
If cn Is Nothing Then
Set cn = New ADODB.Connection
cn.ConnectionString = "Driver={SQL Server};Server=" & ServerName & ";Database=" & db & ";UID='" & un & "';Pwd=" & pw & ";"
cn.CursorLocation = adUseClient
cn.Open
当我运行宏时,我得到了
登录用户" MyUser"
失败
在cn.Open
行。
我已检查过允许远程登录,并且启用了SQL Server和Windows身份验证模式。我还重新创建了用户帐户以防万一。
连接字符串是否存在问题,或者我在服务器上遗漏了什么?
非常感谢!
答案 0 :(得分:1)
我找到了解决方案:UID
周围的单引号不是必需的。在查看日志并注意到用户名的格式化后,我发现了这些。没有额外的单引号,连接成功,我的过程成功执行。
我的最终连接字符串如下所示:
cn.ConnectionString = "Driver={SQL Server};Server=" & ServerName & ";Database=" & db & ";UID=" & un & ";Pwd=" & pw & ";"