Excel VBA 解析 SQL 连接字符串

Excel VBA to parse SQL Connection Strings

我有一个 Excel VBA 使用连接字符串连接到 SQL 数据库,但我想知道是否可以从细胞?例如,如果我在单元格 B2 中有 SQLSVR1\Instance1 并且在 B3 中有 Databas1 我可以将其放入连接字符串中,如下所示:

objMyConn.ConnectionString = "Provider=sqloledb; Data Source=**"B2"**; Initial Catalog=**"B3"**; Integrated Security=SSPI;"

这可能吗?

提前致谢。

完全可能:

objMyConn.ConnectionString =  "Provider=sqloledb; Data Source=" & range("B2").value & "; Initial Catalog=" & range("B3").value &"; Integrated Security=SSPI;"

这基本上是将您的字符串与那些单元格中的值连接起来。

Range.Value 个文档。

是的,正如 EoinS 提到的那样,这是可能的。但请注意确定您的工作表。对于您想在另一个工作表上定义连接字符串的情况。尝试这样的事情:

Dim wb as workbook, ws as worksheet

Set wb = Thisworkbook
Set ws = wb.Worksheets("TheNameofYourWorksheetsWithYourConnectionsDefined")

''Get Cnxn details
sDsn = wsc.Cells(wsc.Range("YourLabeloftheCell").Row + 1,   wsc.Range("YourLabeloftheCell").Column).Value
sUser = wsc.Cells(wsc.Range("YourLabeloftheCell").Row + 2, wsc.Range("YourLabeloftheCell").Column).Value
sPwd = wsc.Cells(wsc.Range("YourLabeloftheCell").Row + 3, wsc.Range("YourLabeloftheCell").Column).Value

sSql= GetRangeString(Worksheets("SQL").Range("A17:A22"))
check = DbSelectQueryToSheet(sDsn, "", sUser, sPwd, sSql, Worksheets("TargetWorksheet").Range("A1"), True)

希望,这对您有所帮助!