无法打开登录请求的数据库“MSSQLSERVER”。登录失败。用户sa登录失败

时间:2017-10-11 23:21:37

标签: sql-server vba

我对SQL Server和VBA都很新。我正在尝试使用VBA连接到我们的SQL Server,在解决了几个问题后,我终于遇到了障碍。我收到以下错误消息:

  

无法打开登录请求的数据库“MSSQLSERVER”。登录失败。用户sa登录失败

我意识到使用sa用户名并不是出于安全目的的理想选择,但我现在必须使用它。我已经尝试重启SQL Server,我已经确保打开了混合模式身份验证。我正在使用的代码如下所示,我现在只是使用测试查询从数据库中提取一行数据。任何帮助将不胜感激

Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sConnString As String

' Create the connection string.
sConnString = "Provider=SQLNCLI11;Server=servername;Database=MSSQLSERVER;Uid=sa;Pwd=password;"

' Create the Connection and Recordset objects.
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset

' Open the connection and execute.
conn.Open sConnString
Set rs = conn.Execute("SELECT IM_BARCOD.BARCOD FROM IM_BARCOD WHERE BARCOD = '793661061274';")

' Check we have data.
If Not rs.EOF Then
    ' Transfer result.
    Sheets(1).Range("A1").CopyFromRecordset rs
' Close the recordset
    rs.Close
Else
    MsgBox "Error: No records returned.", vbCritical
End If

' Clean up
If CBool(conn.State And adStateOpen) Then conn.Close
Set conn = Nothing
Set rs = Nothing

2 个答案:

答案 0 :(得分:1)

  

无法打开登录请求的数据库“MSSQLSERVER”。登录   失败。用户sa登录失败

数据库MSSQLSERVER不存在,因此无法打开。

只需在连接字符串中传递数据库,或传递master或您应该使用的任何现有数据库。

答案 1 :(得分:0)

默认情况下,用户已禁用日志记录,您需要启用它,请尝试以下操作:

https://sudeeptaganguly.wordpress.com/2010/04/20/how-to-enable-sa-account-in-sql-server/