Pfad einer Excel Verbindung auslesen
Betrifft: Pfad einer Excel Verbindung auslesen
von: DerBurch
Geschrieben am: 14.08.2014 10:33:41
Hallo Allerseits,
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
Betrifft: AW: Pfad einer Excel Verbindung auslesen
von: fcs
Geschrieben am: 14.08.2014 15:54:35
Hallo Damian,
diese Informationne sind etwas mühsehlig zu ermitteln, da das Ganze von der Art der Datenverbindung abhängig ist.
Nachfolgend ein Beispiel für 2 Verbindungstypen, das man ggf. erweitern kann.
Dazu muss man im VBA-Editor das Lokal-Fenster einblenden und das Makro im Schrittmodus abarbeiten, so dass man die Inhalte der Variablen objCon auslesen kann.
Gruß
Franz
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
 |
Betrifft: AW: Pfad einer Excel Verbindung auslesen
von: DerBurch
Geschrieben am: 15.08.2014 14:08:04
Hallo Franz,
1000 dank für deine Arbeit!!!!
Ich hätte nie gedacht, dass das so eine Arbeit ist den Pfad auszulesen.
Klappt wunderbar.
Einen lieben Gruß und schönes Wochenende
Damian
Beiträge aus den Excel-Beispielen zum Thema "Pfad einer Excel Verbindung auslesen"