使用VBA代码连接到SQL而不使用Windows身份验证时出错

时间:2017-04-13 19:54:01

标签: sql-server vba excel-vba excel

我正在尝试通过Excel上的VBA代码连接到SQL。

问题是,当我使用我的用户名登录时,我可以毫无问题地连接到数据库。但是当我尝试与登录的其他用户连接时,连接不成功。

我已经在我的数据库中创建了一个用户,如下图所示:

User Created on Database

我在VBA上的连接是这样做的:

Option Explicit

Public DB As New ADODB.Connection
Public RST As New ADODB.Recordset
Public caminho, strConn As String
Public Msg As String

Sub CONECTA_DB()

strConn = "Provider=SQLOLEDB;Data Source=BR1104053\SQLEXPRESS;" & _
          "Initial Catalog=BDVestiario;" & _
          "Integrated Security=SSPI;" & _
          "User ID=bdvestiario;" & _
          "Password=#infra#sudeste#;"


Set DB = New ADODB.Connection
Set RST = New ADODB.Recordset

DB.Open strConn

RST.CursorLocation = adUseClient

这在登录其他用户时出现连接错误,但在我登录用户时正常连接。

问题是,我需要所有公司使用这个连接到SQL的excel表,所以我需要一个通用的用户名来读写数据库。

1 个答案:

答案 0 :(得分:2)

您需要将Integrated Security设置为false或从连接字符串中完全删除。如果是这样或使用SSIS Windows凭据。

strConn = "Provider=SQLOLEDB;Data Source=BR1104053\SQLEXPRESS;" & _
      "Initial Catalog=BDVestiario;" & _
      "User ID=bdvestiario;" & _
      "Password=#infra#sudeste#;"