连接到多个数据库并使用Excel VBA查询

时间:2018-07-09 22:52:05

标签: sql excel-vba

我想连接到excel vba中的多个数据库并查询每个数据库。服务名称从rt0100vtec到rt0900vtec。 这是否可能,如果是,如果UID和pwd分别为admin和admin,for循环将如何?

谢谢您的协助!

1 个答案:

答案 0 :(得分:0)

这不仅可能,而且实际上很容易。请参见下面的代码。如果还有其他问题,请发回。

Private Sub CommandButton1_Click()

Dim SellStartDate As Date  'Declare the SellStartDate as Date
Dim SellEndDate As Date    'Declare the SellEndDate as Date

SellStartDate = Sheets("Sheet1").Range("B3").Value   'Pass value from cell B3 to SellStartDate variable
SellEndDate = Sheets("Sheet1").Range("B4").Value     'Pass value from cell B4 to SellEndDate variable

'Pass the Parameters values to the Stored Procedure used in the Data Connection
With ActiveWorkbook.Connections("AdventureWorksConnection").OLEDBConnection
.CommandText = "EXEC dbo.ProductListPrice '" & SellStartDate & "','" & SellEndDate & "'"
ActiveWorkbook.Connections("AdventureWorksConnection").Refresh

End With
End Sub

请参阅下面的链接以获取所有详细信息

https://www.mssqltips.com/sqlservertip/3436/passing-dynamic-query-values-from-excel-to-sql-server/

此外,如果要动态更新连接字符串,可以尝试以下代码。

Sub TryThis()

Dim conn As Variant
Dim connectString As String

FromString = Worksheets("Main").Range("Z1").Value
ToString = Worksheets("Main").Range("Z12").Value


For Each conn In ActiveWorkbook.Connections
    connectString = conn.ODBCConnection.Connection
    connectString = Replace(connectString, FromString, ToString)
    connectString = Replace(connectString, FromString, ToString)

    conn.ODBCConnection.Connection = connectString
Next conn


End Sub