La Web del Programador: Comunidad de Programadores
 
    Pregunta:  1189 - CONSULTA SQL DE UNA CANTIDAD N DE TABLAS
Autor:  Alejandro Facello Ayala
Tengo una tabla que contiene los nombres de las una serie de tablas de la base de datos. Necesito mostrar en un DBGRID los registros de un campo de cada una de una serie de tablas (el número de tablas de la consulta es variable: entre 12 y 14 tablas). Espero que haya quedado clara la pregunta, y agradezco mucho que me contensten.

  Respuesta:  Francisco Luna
Usa un SELECT con UNION en tablas ralacionales o que tengan campos comunes
"SELECT * FROM TABLA1 WHERE CAMPO=´ ´ UNION ....y luego los otros select"
Suerte

  Respuesta:  Xavi Silva
No acabo de entender bien la pregunta o puede que el problema, pero según lo que he entendido, creo que te falta una cosa, y es algún sitio que indique que tipo de relación existe entre cada una de ellas, ya que de lo contrario, no podrás mostrar una consulta que carge diferentes campos de diferentes tablas, si no existe una relación entre ellas, suponiendo que generes una tabla con la relación que te indico, podrías hacer que el código quedase como una secuencia SQL muy básica:

1/ abres la tabla que contiene la info de las tablas:
sql = "Select MisTablas where IDTabla Like ´LoQueSea%´"

Nota: Recuerda usar % con controlador SQL Server y * con Access.

2/ Lees cada una de las tablas
Rs.MoveFirst
UnaTabla = Rs("IDTabla")

3/ Vas creando la clausula SQL nueva con las diferentes tablas:
SQLFinal = "Select * From " & UnaTabla & " Where " & UnaTabla & ".MiCampo=12"

(por ejemplo).

4/ Ejecutas la SQL Final sobre el DBGrid o directamente desde el código, para recuperar cada campo.

Exactamente no sé si es lo que deseas, pero puedes plantear tu pregunta con más detalle sino es así.

Espero haberte ayudado