La Web del Programador: Comunidad de Programadores
 
    Pregunta:  23178 - BUSCAR LOS CAMPOS QUE SE REPITEN EN TABLAS DE UNA BD ACCES
Autor:  Marcos Noya
Tengo una base de datos en Access enorme, alguien me puede decir como conectar con las tablas y hacer un proceso para que me devuelvan los nombres de las tablas cuyos campos se repiten en otras tablas (de esa misma base de datos) ...

  Respuesta:  marvin CALLEJAS
Hola:
Se me ocurre lo siguiente :
Puedes utilizar el S-Designer ó el Power Designer y aplicarle Ingeniería en Reversa para que te muestre el diagrama conceptual de datos a partir de la definición de la base de datos, posteriormente puedes imprimir el diccionario de datos, en él puedes detectar la duplicidad de campos ya que te lo muestra en orden alfabético.

Otra manera un poco complicada sería a través de ODBC recorrer las tablas e insertarlo a otra tabla con los nombres de los campos y la tabla a la que pertenece, al final únicamente tendrías que ordenar alfabéticamente los registros de la tabla generada, para detectar los campos repetidos.

  Respuesta:  Julio César Arango Cubillos
Se me ocurren dos formas, en VFP o en el mismo access.
Si sabes access y podes abrir la bd en access, te lo recomiendo.
En access, creas una nueva tabla que contenga dos campos:
NTabla y NCampo (nombre de tabla y nombre de campo)
Luego por una rutina que tu mismo haces, recorres todas las tablas mediante la coleccion TableDefs(i), y por cada tabla recorres todos los campos con la coleccion fields(j), almacenas el nombre de tabla y nombre de campo.
Por ultimo haces desde access una consulta de Valores duplicados.

Si no la puedes hacer desde access, haces lo mismo desde vfp, lo que descononzco es si vfp tiene una coleccion para las tablas. La coleccion para los campos de cada tabla es fields(j).

Espero que te sirva.
SALU