1
我試圖在Excel中創建一個函數,通過單擊按鈕將數據寫入到我的遠程SQL Server數據庫。但是,我不斷收到錯誤,告知我用戶「UserName」(Error 80040e4d)的登錄失敗。從Excel導出到SQL:用戶登錄失敗
起初我以爲數據庫中的用戶/登錄一定會有問題,所以我去了遠程桌面,打開SQL Server Management Studio並檢查了我的所有權限,確保已選中Windows身份驗證,密碼等...仍然沒有工作。
我的用戶已被授予讀寫權限,所以我嘗試從SQL導入數據到Excel中,這確實有效。所以我假設這一定是我的VBA代碼中的一個問題,更具體地說,是我的連接字符串。
如果有人可以看一看,並告訴我我做錯了什麼,我將不勝感激。或者如果有其他人有這個問題,並知道是什麼造成的?
這裏是我的代碼:
Sub Button3_Click()
Dim conn As New ADODB.Connection
Dim iRowNo As Integer
Dim sArtistId, sForename, sSurname, sNationality, sBirthDate, sDeathDate As String
With Sheets("NewArtist")
'Open a connection to SQL Server
conn.Open "Provider=SQLOLEDB;Data Source=tcp:IPADDRESS,1433\SqlServer2008;" & _
"Initial Catalog=DatabaseName;User ID=UserName;Password=PassWord" & _
"Integrated Security=SSPI;"
'Skip the header row
iRowNo = 2
'Loop until empty cell in CustomerId
Do Until .Cells(iRowNo, 1) = ""
sCustomerId = .Cells(iRowNo, 1)
sFirstName = .Cells(iRowNo, 2)
sLastName = .Cells(iRowNo, 3)
'Generate and execute sql statement to import the excel rows to SQL Server table
conn.Execute "insert into dbo.Components (ArtistId, Forename, Surname, Nationality, BirthDate, DeathDate) values ('" & sArtistId & "', '" & sForename & "', '" & sSurname & "', '" & sNationality & "', '" & sBirthDate & "', '" & DeathDate & "')"
iRowNo = iRowNo + 1
Loop
MsgBox "Artists imported."
conn.Close
Set conn = Nothing
End With
End Sub
非常感謝您!
TW
它的工作(好東西進口,不完全是我想要的,但我可以修復)!你是我最喜歡的人!謝謝! – MBot93
太棒了!隨時通過勾選我的答案來接受;-) – SpaceBison