VBA Tipp: SQL Source durchsuchen

Aus DBWiki
Wechseln zu: Navigation, Suche

Anforderung

Ich möchte die SQL-Codes aller Abfragen nach einem Suchbegriff durchsuchen.

Lösung

Public Sub SQLDurchsuchen(Suchbegriff As String)
 
   ' Quelle: www.dbwiki.net oder www.dbwiki.de
 
   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, dbOpenSnapshot, dbForwardOnly)
 
   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
   rs.Close
 
   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 Sub

Aufruf

Ein Aufruf erfolgt dann z. Bsp. so:

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


Wiki hinweis.png

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