ich habe eine Excel Datei die eine externe Datenverbindung hat.
Mit ThisWorkbook.Connections(1) kann ich den Dateinamen der Verbindung auslesen aber wie komme ich an den Pfad der Datei die in Connections(1) steht?
Besten Dank
Damian
Sub subGetConnectionInfo()
Dim objConnection
For Each objConnection In ActiveWorkbook.Connections
MsgBox fncGetConnectionInfo(objCon:=objConnection, strParameter:="SourceDataFile")
Next
End Sub
Function fncGetConnectionInfo(objCon As Variant, Optional strParameter) As Variant
'Informationen zu Datenquelle anzeigen ermitteln
Dim strMsg As String, varErgebnis
On Error Resume Next
With objCon
strMsg = strMsg & vbLf & "Name: " & .Name
strMsg = strMsg & vbLf & "Description: " & .Description
strMsg = strMsg & vbLf & "Type: " & .Type
Select Case .Type
Case 2 '2 = xlConnectionTypeODBC
With .ODBCConnection
Select Case strParameter
Case "Connection": varErgebnis = .Connection
Case "SourceDataFile"
If .SourceDataFile = "" Then
varErgebnis = .Connection
varErgebnis = Mid(varErgebnis, InStr(1, varErgebnis, "DBQ=") + 4)
varErgebnis = Left(varErgebnis, InStr(1, varErgebnis, ";") - 1)
Else
varErgebnis = .SourceDataFile
End If
End Select
strMsg = strMsg & vbLf & "Connection: " & .Connection
strMsg = strMsg & vbLf & "CommandText: " & .CommandText
End With
Case 1 '1 = xlConnectionTypeOLEDB
With .OLEDBConnection
Select Case strParameter
Case "Connection": varErgebnis = .Connection
Case "SourceDataFile": varErgebnis = .SourceDataFile
End Select
strMsg = strMsg & vbLf & "Connection: " & .Connection
strMsg = strMsg & vbLf & "Commandtext: " & .CommandText
strMsg = strMsg & vbLf & "SourceDataFile: " & .SourceDataFile
strMsg = strMsg & vbLf & "SourceConnectionFile: " & .SourceConnectionFile
End With
Case Else
End Select
End With
MsgBox strMsg
fncGetConnectionInfo = varErgebnis
End Function