从Excel导出到SQL:用户登录失败

从Excel导出到SQL:用户登录失败,sql,sql-server,excel,vba,connection-string,Sql,Sql Server,Excel,Vba,Connection String,我正在尝试在Excel中创建一个函数,只需单击一个按钮即可将数据写入远程SQL Server数据库。然而,我不断收到一个错误,告诉我我的用户“UserName”登录失败(错误80040e4d) 起初,我认为数据库中的用户/登录名一定有问题,所以我转到远程桌面,打开SQL Server Management Studio并检查我的所有权限,确保选择了Windows身份验证,检查了密码等。。。还是不行 我的用户已被授予读写权限,因此我尝试从SQL将数据导入Excel,但确实有效。所以我假设这一定是我

我正在尝试在Excel中创建一个函数,只需单击一个按钮即可将数据写入远程SQL Server数据库。然而,我不断收到一个错误,告诉我我的用户“UserName”登录失败(错误80040e4d)

起初,我认为数据库中的用户/登录名一定有问题,所以我转到远程桌面,打开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

集成安全=SSPI

连接字符串中的此参数意味着您要将windows主体名称作为身份验证传递,因此sql登录名和密码将被忽略


如果您想使用指定的用户名和密码,您应该从连接字符串中删除此名称/值对。

它起作用了(很好,导入了一些东西,不是我想要的,但我可以修复)!你是我最喜欢的人!!非常感谢。伟大的勾选我的答案即可接受;-)