VBA Tipp: SQL Source durchsuchen

Aus DBWiki
Wechseln zu: Navigation, Suche

Aufgabenstellung

Ich möchte alle SQL-Codes der Abfragen nach einem Suchbegriff durchsuchen.

Lösung

Public Function SQL_AUSLESEN(Suchbegriff As String)
 
Dim db As Database
Dim rs As DAO.Recordset
Dim qry As DAO.QueryDef
Dim strSQL As String
Dim strQryName As String
Dim strErgebnis As String
Dim strMsg As String
 
Set db = CurrentDb()
 
strSQL = "SELECT [Name] " & _
         "FROM MSysObjects " & _
         "WHERE [Type]=5;"
 
Set rs = db.OpenRecordset(strSQL)
 
Do While Not rs.EOF
  strQryName = rs![Name]
  Set qry = db.QueryDefs(strQryName)
  If InStr(qry.SQL, Suchbegriff) > 0 Then
    strErgebnis = strErgebnis & vbCrLf & strQryName
  End If
  rs.MoveNext
Loop
 
strMsg = "Der Suchbegriff '" & Suchbegriff & "'"
If Len(strErgebnis) > 0 Then
  strErgebnis = Mid(strErgebnis, 3)
  strMsg = strMsg & " ist in folgenden Abfragen enthalten: " & vbCrLf & strErgebnis
 Else
  strMsg = strMsg & " wurde in keiner Abfrage gefunden!"
End If
 
MsgBox strMsg, vbInformation + vbOKOnly
 
End Function

Aufruf

Der Aufruf erfolgt dann ungefähr so:

Function test()
 
Call SQL_AUSLESEN("INSERT")
 
End Function


Wiki hinweis.png Anmerkung: Dieser Code kann auch umgebaut werden, um Makros zu durchsuchen.