我想连接到excel vba中的多个数据库并查询每个数据库。服务名称从rt0100vtec到rt0900vtec。 这是否可能,如果是,如果UID和pwd分别为admin和admin,for循环将如何?
谢谢您的协助!
答案 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