Sql server 如果服务器需要特定的用户名和密码,是否在VBA中连接到SQL Server?

Sql server 如果服务器需要特定的用户名和密码,是否在VBA中连接到SQL Server?,sql-server,excel,vba,Sql Server,Excel,Vba,我今天意识到,当您在Excel的本机连接中连接到SQL Server数据源时,它不允许您输入特定的用户名和密码。它只要求提供服务器名和数据库 在VBA中,假设我想将SQL Server数据查询中的数据导入Sheet1,您能否帮助我了解如何编写该代码 在本练习中: SQL Server Connection INFO Server Name: TestingS,1633 Database Name: CarSales username: car password

我今天意识到,当您在Excel的本机连接中连接到SQL Server数据源时,它不允许您输入特定的用户名和密码。它只要求提供服务器名和数据库

在VBA中,假设我想将SQL Server数据查询中的数据导入Sheet1,您能否帮助我了解如何编写该代码

在本练习中:

SQL Server Connection INFO
    Server Name:  TestingS,1633
    Database Name: CarSales
    username:  car
    password: sales
    
    The query I want to run for simplicity sake can be:  "select * from table"

我一直在做一些研究,但有点迷路了。我可以通过ODBC使用自定义SQL设置标准查询,但因为我需要VBA,这对我来说非常棘手。请帮助。

这是MSSQL的一个示例

Sub testMSSQL()

 'Reference  Microsoft ActiveX data object Library 2.8 ~~

   Dim cnn As ADODB.Connection
   Dim strSQL As String
   Dim Ws As Worksheet
   
   Set Ws = ActiveSheet
   strSQL = "select * from table"
   
   Set cnn = New ADODB.Connection

   'Set the provider property to the OLE DB Provider for ODBC.
   'cnn.Provider = "MSDASQL"
   'cnn.Provider = "Microsoft.ACE.OLEDB.12.0"
   'cnn.Provider = "MSOLAP"
   cnn.Provider = "SQLOLEDB.1" '<~~ mssql
   
   ' Open a connection using an ODBC DSN.
   cnn.ConnectionString = "driver={SQL Server};" & _
      "server=TestingS;uid=car;pwd=sales;database=CarSales"

    
    Set rs = New ADODB.Recordset

    rs.Open strSQL, cnn.ConnectionString, adOpenForwardOnly, adLockReadOnly, adCmdText
    
    cnn.Open
    If cnn.State = adStateOpen Then
    Else
       MsgBox "Not connected server"
       Exit Sub
    End If
    
    If Not rs.EOF Then
         With Ws
            .Range("a1").CurrentRegion.ClearContents
            For i = 0 To rs.Fields.Count - 1
               .Cells(1, i + 1).Value = rs.Fields(i).Name
            Next
            .Range("a2").CopyFromRecordset rs
            .Columns.AutoFit
        End With
    Else
        MsgBox "No Data!!", vbCritical
    End If
    rs.Close
    Set rs = Nothing
   
    cnn.Close
    Set cnn = Nothing
End Sub
子测试MSSQL()
'参考Microsoft ActiveX数据对象库2.8~~
将cnn设置为ADODB.Connection
作为字符串的Dim strSQL
将Ws设置为工作表
设置Ws=ActiveSheet
strSQL=“从表中选择*
设置cnn=newadodb.Connection
'将提供程序属性设置为ODBC的OLE DB提供程序。
'cnn.Provider=“MSDASQL”
'cnn.Provider=“Microsoft.ACE.OLEDB.12.0”
'cnn.Provider=“MSOLAP”

cnn.Provider=“SQLOLEDB.1”在线提供了大量示例。如。