2016-05-23 16 views
2

Ich habe eine Excel-VBA, die eine Verbindung zu einer SQL-DB mithilfe der Verbindungszeichenfolgen herstellt, aber ich würde gerne wissen, ob es möglich ist, in die Verbindungszeichenfolge von einer Zelle analysieren. Zum Beispiel, wenn ich SQLSVR1\Instance1 in Zelle B2 und Databas1 in B3 haben kann ich das wie die folgenden in die Verbindungszeichenfolgen erhalten:Excel VBA zum Analysieren von SQL Connection Strings

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

Ist das möglich?

Vielen Dank im Voraus.

Antwort

2

Völlig möglich:

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

Diese verkettet im Grunde die Zeichenfolge mit den Werten in den Zellen.

Range.Value Dokumente.

+0

Super, danke Eoins! –

0

Ja ist es möglich, als EoinS erwähnt. Bitte beachten Sie jedoch, dass Sie Ihre Arbeitsblätter ermitteln müssen. Für den Fall möchten Sie die Verbindungszeichenfolgen in einem anderen Arbeitsblatt definieren. Versuchen Sie etwas wie folgt:

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) 

Hoffe, das hilft!

+0

Danke für die Hilfe - sehr geschätzt –