'**************************************
' Funciones que reemplazan la palabra
' "Formularios!" por "Forms!" en Tablas,
' consultas, formularios e informes
' y sus controles.
' Necesita ser referenciada la librería
' Microsoft DAO (x.x) Object Library.
' Espero que os sea de utilidad.
'
' Julio 2002
' Juan M. Afan de Ribera - happy
' **************************************

Option Compare Database
Option Explicit

'Tablas: Búsqueda en las propiedades de 
'campo - Valor predeterminado - Regla de
'validación y Origen de la fila

Function ReemplazarenTablas()
Dim tdf As TableDef
Dim fld As Field
Dim prp As Property

  For Each tdf In CurrentDb.TableDefs
   For Each fld In tdf.Fields
    For Each prp In fld.Properties
      If prp.Name = "DefaultValue" Or prp.Name = "ValidationRule" Or prp.Name = "RowSource" Then
        prp.Value = Traduccion(prp.Value)
      End If
    Next
   Next
  Next
  
End Function

'Consultas: Búsqueda en la cadena sql

Function ReemplazarenConsultas()
Dim qdf As QueryDef

  For Each qdf In CurrentDb.QueryDefs
    qdf.SQL = Traduccion(qdf.SQL)
  Next
  
End Function

'Formularios: Búsqueda en el Origen del
'Registro y Filtro. Controles: Búsqueda
'en el Origen del Control y Origen de la
'Fila

Function ReemplazarenFormularios()
Dim obj As AccessObject
Dim frm As Form
Dim ctl As Control
Dim prp As Property

  For Each obj In CurrentProject.AllForms
    DoCmd.OpenForm obj.Name, acDesign, , , , acIcon
    Set frm = Forms(obj.Name)
    frm.RecordSource = Traduccion(frm.RecordSource)
    frm.Filter = Traduccion(frm.Filter)
    For Each ctl In frm.Controls
      For Each prp In ctl.Properties
        If prp.Name = "RecordSource" Or prp.Name = "RowSource" Then
          prp.Value = Traduccion(prp.Value)
          Debug.Print prp.Value
        End If
      Next
    Next
    Set frm = Nothing
    DoCmd.Close acForm, obj.Name, acSaveYes
  Next
  
End Function

'Informes: Búsqueda igual que en formularios

Function ReemplazarenInformes()
Dim obj As AccessObject
Dim rpt As Report
Dim ctl As Control
Dim prp As Property

  For Each obj In CurrentProject.AllReports
    DoCmd.OpenReport obj.Name, acViewDesign
    DoCmd.Minimize
    Set rpt = Reports(obj.Name)
    rpt.RecordSource = Traduccion(rpt.RecordSource)
    rpt.Filter = Traduccion(rpt.Filter)
    For Each ctl In rpt.Controls
      For Each prp In ctl.Properties
        If prp.Name = "ControlSource" Or prp.Name = "RowSource" Then
          prp.Value = Traduccion(prp.Value)
        End If
      Next
    Next
    Set rpt = Nothing
    DoCmd.Close acReport, obj.Name, acSaveYes
  Next
  
End Function

Function Traduccion(Cadena As String)
  Traduccion = Replace(Cadena, "Formularios!", "Forms!")
End Function

    Source: geocities.com/es/ensolva/Descargas/Documentos

               ( geocities.com/es/ensolva/Descargas)                   ( geocities.com/es/ensolva)                   ( geocities.com/es)