我对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
答案 0 :(得分:1)
无法打开登录请求的数据库“MSSQLSERVER”。登录 失败。用户sa登录失败
数据库MSSQLSERVER不存在,因此无法打开。
只需在连接字符串中传递数据库,或传递master
或您应该使用的任何现有数据库。
答案 1 :(得分:0)
默认情况下,用户已禁用日志记录,您需要启用它,请尝试以下操作:
https://sudeeptaganguly.wordpress.com/2010/04/20/how-to-enable-sa-account-in-sql-server/