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

Обработка всех запросов - замена одного значения на другое

Private Sub AllQueriesSQLCorretion()
' Обработка всех запросов приложения c заменой искомых вхождений строки (csFindString на csReplaceStr)
' ---------------------------------------------------------------------------------------------------/
' !!! ----------------------------- СДЕЛАЙ РЕЗЕРВНУЮ КОПИЮ БД! ----------------------------------- !!!
' ---------------------------------------------------------------------------------------------------/
Dim qdf As DAO.QueryDef
Dim sSQL As String, iCountRep%, iCountAll%
Const csFindString$ = "пцтКоординаты"  'Что найти
Const csReplaceStr$ = "пцтКомментарий" 'На что Заменить
    
    For Each qdf In CurrentDb.QueryDefs
        sSQL = qdf.SQL
        iCountAll = iCountAll + 1
        If InStr(1, sSQL, csFindString, vbTextCompare) > 0 Then
            sSQL = Replace(sSQL, csFindString, csReplaceStr, 1, , vbTextCompare)
            qdf.SQL = sSQL
            iCountRep = iCountRep + 1
            Debug.Print qdf.Name & " - Fixed!."
        End If
    Next qdf
    
    Set qdf = Nothing
    Debug.Print "Обработано "; iCountAll & _
        " запросов, произведено исправлений: " & iCountRep
End Sub



Исправление "[Формы]!" на "[Forms]!"

Private Sub AllQueriesSQLFormsCorretion()
' Обработка всех запросов приложения и исправление "[Формы]!" на "[Forms]!"
' !!! ---- СДЕЛАЙ РЕЗЕРВНУЮ КОПИЮ ---- !!!
' ----------------------------------------------------------------------------------------------------
Dim qdf As DAO.QueryDef
Dim sSQL As String
    For Each qdf In CurrentDb.QueryDefs
        sSQL = qdf.SQL
        If InStr(1, sSQL, "[Формы]!", vbTextCompare) > 0 Then
            sSQL = Replace(sSQL, "[Формы]!", "[Forms]!", 1, -1, vbTextCompare)
            qdf.SQL = sSQL
            Debug.Print qdf.Name & " - fixed."
        End If
    Next qdf
    Set qdf = Nothing
End Sub
Назад ToTop
L.E. 02.04.2024
Рейтинг@Mail.ru