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)
希望,这对您有所帮助!
我有一个 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)
希望,这对您有所帮助!