Access - Queries durchsuchen
Hallo zusammen,
weiß jemand eine Möglichkeit, wie man per VBA in Access (2003) in allen Queries (incl. der SQL-Strings in Formularen und Berichten) nach einem bestimmten Begriff suchen kann?
Hintergrund: Ich muss eine Funktion umbenennen und muss daher den Aufruf auch überall in den Queries und Datenherkünften in Formularen und Berichten anpassen.
Danke für alle Infos und Hinweise.
Viele Grüße
Jochen
weiß jemand eine Möglichkeit, wie man per VBA in Access (2003) in allen Queries (incl. der SQL-Strings in Formularen und Berichten) nach einem bestimmten Begriff suchen kann?
Hintergrund: Ich muss eine Funktion umbenennen und muss daher den Aufruf auch überall in den Queries und Datenherkünften in Formularen und Berichten anpassen.
Danke für alle Infos und Hinweise.
Viele Grüße
Jochen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 2708651978
Url: https://administrator.de/contentid/2708651978
Ausgedruckt am: 04.11.2024 um 22:11 Uhr
1 Kommentar
Servus Jochen,
habe zwar gerade kein 2003er Access hier im Zugriff, aber probier es mal hiermit, das zeigt die Positionen erst mal nur mit Messageboxes an, Bei Bedarf ließe sich aber auch direkt ein Replace vornehmen (wenn komplizierter bei Bedarf auch mittels Regular Expression) wenn man wollte, du willst da aber vermutlich lieber manuell eingreifen.
Möchtest du die Suchergebnisse lieber in eine Textdatei schreiben lassen wenn die mögliche Anzahl der Funstellen größer ist dann kannst du den Codes so schreiben.
Suchbegriff und Dateiname natürlich an eigene Bedürfnisse anpassen.
p.s. die Query-Definitions kannst du dir auch als Tabelle anzeigen lassen indem du in der Baumübersicht links die Ansicht der Systemobjekte einschaltest und dort die Tabelle MSysQueries öffnest, dort kannst du auch die Spalten nach deinem Begriff manuell filtern.
Grüße Uwe
habe zwar gerade kein 2003er Access hier im Zugriff, aber probier es mal hiermit, das zeigt die Positionen erst mal nur mit Messageboxes an, Bei Bedarf ließe sich aber auch direkt ein Replace vornehmen (wenn komplizierter bei Bedarf auch mittels Regular Expression) wenn man wollte, du willst da aber vermutlich lieber manuell eingreifen.
Sub SearchAllQueries()
Dim q As QueryDef, strSearch As String
' Suchbegriff definieren
strSearch = "Das suche ich"
For Each q In CurrentDb.QueryDefs
If InStr(1, q.SQL, strSearch, vbTextCompare) > 0 Then
MsgBox "String found in query object with name: '" & vbNewLine & vbNewLine & q.Name & "'" & vbNewLine & vbNewLine & "Containing SQL: " & vbNewLine & vbNewLine & q.SQL
End If
Next
End Sub
Sub SearchAllQueries()
Dim q As QueryDef, strSearch As String, objFile As Object, strFilename As String, fso as Object
' Suchbegriff definieren
strSearch = "Das suche ich"
' Dateiname für das Logfile
strFilename = "E:\search.log"
Set fso = CreateObject("Scripting.FileSystemObject")
Set objFile = fso.OpenTextFile(strFilename, 2, True)
For Each q In CurrentDb.QueryDefs
If InStr(1, q.SQL, strSearch, vbTextCompare) > 0 Then
objFile.WriteLine "String found in object with name: '" & q.Name & "'" & vbNewLine & "Containing SQL: " & q.SQL & "========================="
End If
Next
objFile.Close
End Sub
p.s. die Query-Definitions kannst du dir auch als Tabelle anzeigen lassen indem du in der Baumübersicht links die Ansicht der Systemobjekte einschaltest und dort die Tabelle MSysQueries öffnest, dort kannst du auch die Spalten nach deinem Begriff manuell filtern.
Grüße Uwe