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
Um den Pfad einer Excel-Datenverbindung auszulesen, kannst du den folgenden VBA-Code verwenden. Dieser Code hilft dir, die Verbindung zu analysieren und den Pfad der Quelldatei zu extrahieren.
ALT + F11, um den VBA-Editor zu öffnen.Einfügen und wähle Modul, um ein neues Modul zu erstellen.Sub subGetConnectionInfo()
Dim objConnection As Variant
For Each objConnection In ThisWorkbook.Connections
MsgBox fncGetConnectionInfo(objCon:=objConnection, strParameter:="SourceDataFile")
Next
End Sub
Function fncGetConnectionInfo(objCon As Variant, Optional strParameter As String) As Variant
Dim strMsg As String, varErgebnis As Variant
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 ' ODBC
With .ODBCConnection
Select Case strParameter
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
End With
Case 1 ' OLEDB
With .OLEDBConnection
Select Case strParameter
Case "SourceDataFile": varErgebnis = .SourceDataFile
End Select
End With
End Select
End With
MsgBox strMsg
fncGetConnectionInfo = varErgebnis
End Function
subGetConnectionInfo aus, um die Verbindungsinformationen zu erhalten.Fehler: "Objekt erforderlich"
Lösung: Stelle sicher, dass die Verbindung korrekt eingestellt ist und dass du die richtige Connection im ThisWorkbook-Objekt verwendest.
Problem: Keine Daten angezeigt
Lösung: Überprüfe, ob die Datenquelle korrekt verbunden ist und ob die Verbindungstypen (ODBC oder OLEDB) unterstützt werden.
Eine alternative Methode, um Excel-Datenverbindungen anzuzeigen, ist die Verwendung des Excel-Menüs:
Daten in der Menüleiste.Abfragen und Verbindungen.Wenn du beispielsweise eine ODBC-Verbindung zu einer SQL-Datenbank hast, kannst du den obigen Code verwenden, um den Pfad zur Datenbankdatei zu extrahieren. Bei einer Excel-Datei als Datenquelle würde der Code den Pfad zu dieser Datei anzeigen.
ThisWorkbook.Connections, um alle Verbindungen in deiner Arbeitsmappe anzuzeigen. Dies ist besonders nützlich, wenn du viele Datenverbindungen verwaltest.Connection-Typen, um ein besseres Verständnis für die Struktur deiner Datenverbindungen zu entwickeln.1. Wie kann ich sicherstellen, dass ich die richtige Verbindung auswähle?
Verwende die MsgBox, um die Namen der Verbindungen anzuzeigen, und prüfe, ob sie mit deinen Erwartungen übereinstimmen.
2. Was mache ich, wenn die Excel-Datei nicht öffnet?
Überprüfe die Datenverbindungseinstellungen und stelle sicher, dass die Quelle erreichbar ist. Manchmal kann die Datei auch gesperrt oder in einem anderen Programm geöffnet sein.