2017-10-11 242 views
-1

我對SQL Server以及VBA都很陌生。我嘗試使用VBA連接到我們的SQL Server,並在解決了幾個問題後,終於遇到了障礙。我收到以下錯誤消息:無法打開登錄請求的數據庫「MSSQLSERVER」。登錄失敗。用戶sa登錄失敗

無法打開登錄所請求的數據庫「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

我真的很希望密碼不是你在那個連接字符串中的那個字符串 – MatBailie

+0

把VBA一塊拿出來。使用SSMS或UDL方法來測試連通性。你可以連接SSMS嗎?如果是這樣,瀏覽到服務器登錄名,並確保啓用sa –

+1

'MSSQLSERVER'是默認(未命名)實例的默認服務名稱 - 是**真**你的數據庫名稱,也?? –

回答

0

無法打開數據庫「MSSQLSERVER」請求登錄。登錄 失敗。用戶sa登錄失敗

數據庫MSSQLSERVER不存在,所以無法打開。

只需在連接字符串中傳遞數據庫,或傳遞master或任何您應該使用的現有數據庫。

+0

這對我有效,謝謝! – Liz

相關問題