Hallo an Alle,
ich brauche mal einen Excel-perten der mir weiterhilft. Wir haben die Aufgabe bekommen, dass wir das Ganze Firmennetzwerk auf Exceldateien durchsuchen sollen, die Abfragen zu unserem SQL Server stellen.
Das habe ich auch soweit hinbekommen. Nur scheitere ich jetzt leider an einem Detail. Ich kannte bisher nur die Möglichkeit, dass man eine Abfrage in Excel erstellt, die dan in Tabellenform erstellt wird.
Diese wird auch problemlos von unten stehendem Code gefunden.
Kollegen (die nicht mehr bei uns arbeiten) haben aber auch Excel-Tools erstellt, bei den die Abfragen direkt in eine Pivot Tabelle münden.
Augenscheinlich sind das die Problemkinder die von meinem code nicht erfasst werden.
Habt Ihr schonmal von sowas gehört?
ich brauche mal einen Excel-perten der mir weiterhilft. Wir haben die Aufgabe bekommen, dass wir das Ganze Firmennetzwerk auf Exceldateien durchsuchen sollen, die Abfragen zu unserem SQL Server stellen.
Das habe ich auch soweit hinbekommen. Nur scheitere ich jetzt leider an einem Detail. Ich kannte bisher nur die Möglichkeit, dass man eine Abfrage in Excel erstellt, die dan in Tabellenform erstellt wird.
Diese wird auch problemlos von unten stehendem Code gefunden.
Kollegen (die nicht mehr bei uns arbeiten) haben aber auch Excel-Tools erstellt, bei den die Abfragen direkt in eine Pivot Tabelle münden.
Augenscheinlich sind das die Problemkinder die von meinem code nicht erfasst werden.
Habt Ihr schonmal von sowas gehört?
Visual Basic-Quellcode
- Function QuerysAuslesen(ByVal Excel_Datei_Pfad)
- On Error GoTo Fehlerbehandlung
- Set AktionSHELL = CreateObject("WScript.Shell")
- DesktopPfad = AktionSHELL.SpecialFolders("Desktop")
- Textdatei_pfad = DesktopPfad & "\Excel_documents_with_querys.txt"
- Application.Workbooks.Open Excel_Datei_Pfad, False, True
- Dim qrt As QueryTable, objListObject As ListObject, iIndex As Integer
- Dim wsh As Worksheet
- Dim bAddList As Boolean
- Dim qrt_Anzahl As Integer
- qrt_Anzahl = 0
- QUERY_STRING = ""
- For Each wsh In ActiveWorkbook.Worksheets
- For Each qrt In wsh.QueryTables
- qrt_Anzahl = qrt_Anzahl + 1
- Reiter = wsh.Name
- Verbindungs_zeichen_folge = qrt.Connection
- Abfrage = qrt.Sql
- Abfrage = Replace(Abfrage, vbCrLf, " ")
- Abfrage = Replace(Abfrage, vbCr, " ")
- Abfrage = Replace(Abfrage, vbLf, " ")
- Abfrage = Replace(Abfrage, vbTab, " ")
- Pfad_zerlegen ActiveWorkbook.FullName, Verzeichnis, Dateiname, Dateiendung
- Date_LastAccessed = Dateieigenschaften_auslesen_vba(ActiveWorkbook.FullName, "Date_LastAccessed")
- QUERY_STRING = vbTab & Dateiname & "." & Dateiendung & vbTab & Verzeichnis & vbTab & vbTab & Abfrage & vbTab & vbTab & Date_LastAccessed & vbTab & Verbindungs_zeichen_folge & vbTab & Reiter
- Text_Datei_Schreiben QUERY_STRING, Textdatei_pfad
- Next
- iIndex = 0
- For Each objListObject In wsh.ListObjects
- iIndex = iIndex + 1
- With objListObject
- If .SourceType = xlSrcQuery Then
- Set qrt = .QueryTable
- qrt_Anzahl = qrt_Anzahl + 1
- Reiter = wsh.Name
- Verbindungs_zeichen_folge = qrt.Connection
- Abfrage = qrt.Sql
- Abfrage = Replace(Abfrage, vbCrLf, " ")
- Abfrage = Replace(Abfrage, vbCr, " ")
- Abfrage = Replace(Abfrage, vbLf, " ")
- Abfrage = Replace(Abfrage, vbTab, " ")
- Pfad_zerlegen ActiveWorkbook.FullName, Verzeichnis, Dateiname, Dateiendung
- Date_LastAccessed = Dateieigenschaften_auslesen_vba(ActiveWorkbook.FullName, "Date_LastAccessed")
- QUERY_STRING = vbTab & Dateiname & "." & Dateiendung & vbTab & Verzeichnis & vbTab & vbTab & Abfrage & vbTab & vbTab & Date_LastAccessed & vbTab & Verbindungs_zeichen_folge & vbTab & Reiter
- Text_Datei_Schreiben QUERY_STRING, Textdatei_pfad
- End If
- End With
- Next
- Next
- ActiveWorkbook.Close False
- Fehlerbehandlung:
- If Err.Number = 1004 Then
- Exit Function
- Resume
- End If
- End Function
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Bot-Like“ ()