VBA, MS Access MS Access в примерах

Поиск строки по обьектам базы (формам, отчетам, запросам)

Public Sub FindStringInDataSources(strFind As String)
'es 14.12.04
'Выводит в Immediate Window список обектов базы данных _
    в источнике данных которых обнаружена ИСКОМАЯ строка, _
    указанная в аргументе strFind.
'Полезно при поиске подлежащих изменению обьектов базы после: _
    а)- удаления поля из таблицы базы _
    б)- изменения формата поля таблицы _
    в)- изменения функций _
    г)- и т.п. ...
'--------------------------------------------------------------------
'ВНИМАНИЕ!
'Вычисляемые поля Форм/Отчетов (где Значение Поля = Выражение) НЕ ОБСЛУЖИВАЮТСЯ!
'--------------------------------------------------------------------
Dim qdf As QueryDef
Dim ctr As String
Dim str As String
Dim strName As String
Dim i As Integer
Dim x As Integer
On Error GoTo FindStringInDataSourcesErr
    For Each qdf In CurrentDb.QueryDefs
        str = qdf.SQL
        If InStr(1, str, strFind) > 0 Then
            If Left(qdf.Name, 4) = "~sq_" Then
                Select Case Mid(qdf.Name, 5, 1)
                    Case "f"
                        strName = "Форма: " & Mid(qdf.Name, 6)
                    Case "c"
                        strName = "Обьект Формы: " & Mid(qdf.Name, 6, InStr(5, qdf.Name, "~sq_") - 6)
                        strName = strName & " -> " & Mid(qdf.Name, InStr(5, qdf.Name, "~sq_") + 5)
                    Case "r"
                        strName = "Отчет: " & Mid(qdf.Name, 6)
                    Case "d"
                        strName = "Обьект Отчета: " & Mid(qdf.Name, 6, InStr(5, qdf.Name, "~sq_") - 6)
                        strName = strName & " -> " & Mid(qdf.Name, InStr(5, qdf.Name, "~sq_") + 5)
                    Case Else
                        strName = "Неизвестный обьект!: " & Mid(qdf.Name, 6) ' :)
                End Select
                Debug.Print strName
            Else
               Debug.Print "Запррос: " & qdf.Name
            End If
        End If
    Next qdf
    
    Exit Sub
FindStringInDataSourcesErr:
    Debug.Print Err.Description & vbCrLf & " Err"

End Sub


ВНИМАНИЕ!
Вычисляемые поля Форм/Отчетов (Знач.Поля=Выражение) НЕ ОБСЛУЖИВАЮТСЯ!

Назад ToTop
L.E. 28.08.2018
Рейтинг@Mail.ru