Hola:

Mirando cosas que iba a borrar me he encontrado con éste procedimiento
que permite saber en qué tablas de una base de datos se utiliza un
"campo" determinado. En una base de datos de pocas tablas esto no
tiene importancia pero cuando hablamos de bases de datos con algunas
decenas de tablas la cosa empieza a ser interesante.

El procedimiento admite como comodin el asterisco (*) de forma que
puedes pedir, por ejemplo, las tablas en la que se encuentren campos
que contengan en su nombre "Art".

Además, al presentar el tipo de campo y longitud del mismo, te permite
comprobar la congruencia entre ellos.

Espero que a más de uno le resulte interesante.

Saludos.
CARCAR

El procedimiento se incorpora en un módulo de la base de datos a
investigar.
(Cuidado con las líneas que quedan cortadas por el editor).

'-----------------------Copiar---------------------------------------
Sub TablasConCampo(NombreCampo As String)
    
    Dim Bd                      As DATABASE
    Dim Tabla                   As TableDef
    Dim Campo                   As Field
    Dim ValorBusqueda           As String
    Dim GuardaValorBusqueda     As String
    
    Dim Tipo                    As String
    Dim Sumado                  As Boolean
    
    Dim MxLenTb                 As Integer
    Dim MxLenFld                As Integer
    Dim PrimeraVez              As Boolean
    
    Dim Lon                     As Integer
    Dim TotalCampos             As Integer
    Dim TotalTablas             As Integer
    Dim X                       As Integer
    Dim N                       As Integer
    Dim M                       As Integer
    Dim ComodinFinal            As Boolean
    Dim ComodinInicial          As Boolean
    
    ComodinFinal = False
    ComodinInicial = False
    
    If Right(NombreCampo, 1) = "*" Then
        Lon = Len(NombreCampo) - 1
        ValorBusqueda = Left(NombreCampo, Lon)
        ComodinFinal = True
      Else
        Lon = Len(NombreCampo)
        ValorBusqueda = NombreCampo
    End If
    GuardaValorBusqueda = ValorBusqueda
    
    Set Bd = CurrentDb
    TotalCampos = 0
    TotalTablas = 0
 
    Debug.Print " "
    Debug.Print "Valor de búsqueda: '" & NombreCampo & "'"
    Debug.Print " "
   
    For N = 1 To 2
        If N = 2 Then
            If MxLenTb < 15 Then
                MxLenTb = 15
            End If
            If MxLenFld < 15 Then
                MxLenFld = 15
            End If
            ValorBusqueda = GuardaValorBusqueda
            Debug.Print "Nombre de tabla"; Tab(MxLenTb + 3); "Nombre
de campo"; Tab(MxLenTb + MxLenFld + 5); "Tipo campo"; Tab(MxLenTb +
MxLenFld + 19); "Tamaño"
            For M = 1 To MxLenTb
                Debug.Print "-";
            Next M
            Debug.Print Tab(MxLenTb + 3);
            For M = 1 To MxLenFld
                Debug.Print "-";
            Next M
            Debug.Print Tab(MxLenTb + MxLenFld + 5); "------------";
Tab(MxLenTb + MxLenFld + 19); "------"
        End If
        If Left(NombreCampo, 1) <> "*" Then
            For Each Tabla In Bd.TableDefs
                Sumado = False
                For Each Campo In Tabla.Fields
                    If Len(Campo.Name) <> Lon And Not ComodinFinal
Then
                        GoTo OtroCampo
                    End If
                    If Left(Campo.Name, Lon) = ValorBusqueda Then
                        Select Case Campo.Type
                        Case 1
                            Tipo = "Sí/No"
                        Case 2
                            Tipo = "Byte"
                        Case 3
                            Tipo = "Entero"
                        Case 4
                            Tipo = "Entero largo"
                        Case 5
                            Tipo = "Moneda"
                        Case 6
                            Tipo = "Simple"
                        Case 7
                            Tipo = "Doble"
                        Case 8
                            Tipo = "Fecha/hora"
                        Case 10
                            Tipo = "Texto"
                        Case 11
                            Tipo = "Objeto OLE"
                        Case 12
                            Tipo = "Memo"
                        Case Else
                            Tipo = Campo.Type
                        End Select
                        If Len(Campo.Name) > MxLenFld Then
                            MxLenFld = Len(Campo.Name)
                        End If
                        If Len(Tabla.Name) > MxLenTb Then
                            MxLenTb = Len(Tabla.Name)
                        End If
                        If N = 2 Then
                            Debug.Print Tabla.Name; Tab(MxLenTb + 3);
Campo.Name; Tab(MxLenTb + MxLenFld + 5); Tipo; Tab(MxLenTb + MxLenFld
+ 19); Campo.Size
                            TotalCampos = TotalCampos + 1
                            If Not Sumado Then
                                TotalTablas = TotalTablas + 1
                                Sumado = True
                            End If
                        End If
                    End If
OtroCampo:
                Next
            Next
        End If
        
        If Left(ValorBusqueda, 1) = "*" Then
            Lon = Len(ValorBusqueda) - 1
            ValorBusqueda = Right(ValorBusqueda, Lon)
            For Each Tabla In Bd.TableDefs
                Sumado = False
                For Each Campo In Tabla.Fields
                    X = InStr(1, Campo.Name, ValorBusqueda,
vbTextCompare)
                    If X = 0 Then
                        GoTo OtroCampo2
                    End If
                    If ComodinFinal Or Not ComodinFinal And
Len(Right(Campo.Name, Len(Campo.Name) - (X + Lon - 1))) = 0 Then
                        Select Case Campo.Type
                        Case 1
                            Tipo = "Sí/No"
                        Case 2
                            Tipo = "Byte"
                        Case 3
                            Tipo = "Entero"
                        Case 4
                            Tipo = "Entero largo"
                        Case 5
                            Tipo = "Moneda"
                        Case 6
                            Tipo = "Simple"
                        Case 7
                            Tipo = "Doble"
                        Case 8
                            Tipo = "Fecha/hora"
                        Case 10
                            Tipo = "Texto"
                        Case 11
                            Tipo = "Objeto OLE"
                        Case 12
                            Tipo = "Memo"
                        Case Else
                            Tipo = Campo.Type
                        End Select
                        If Len(Campo.Name) > MxLenFld Then
                            MxLenFld = Len(Campo.Name)
                        End If
                        If Len(Tabla.Name) > MxLenTb Then
                            MxLenTb = Len(Tabla.Name)
                        End If
                        If N = 2 Then
                            Debug.Print Tabla.Name; Tab(MxLenTb + 3);
Campo.Name; Tab(MxLenTb + MxLenFld + 5); Tipo; Tab(MxLenTb + MxLenFld
+ 19); Campo.Size
                            TotalCampos = TotalCampos + 1
                            If Not Sumado Then
                                TotalTablas = TotalTablas + 1
                                Sumado = True
                            End If
                        End If
                    End If
OtroCampo2:
                Next
            Next
        End If
    Next N
    Bd.Close
    
    Debug.Print ""
    Debug.Print "Total de tablas encontradas: " & TotalTablas & "  
total campos: " & TotalCampos
    Debug.Print ""
    MsgBox "Tablas encontradas: " & TotalTablas & "   total campos: "
& TotalCampos
End Sub
'-----------------------------Fin de
copia----------------------------------------

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

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