Juanjo Luna

MVP Microsoft 365 Apps & Services 2023

LinkedIn Learning Instructor

Presidente de Access User Groups España

CEO Luna-Soft

Desarrollador

Consultor Informático

Juanjo Luna

MVP Microsoft 365 Apps & Services 2023

LinkedIn Learning Instructor

Presidente de Access User Groups España

CEO Luna-Soft

Desarrollador

Consultor Informático

Blog Post

SourceTable: Obtener la tabla fuente de un campo en una consulta

26 de febrero de 2024 ACCESS, Consultas, Dudas, El rincón de Happy

PREGUNTA

¿Existe alguna forma de determinar la tabla fuente de un campo en una consulta, mirando el conjunto de registros? ¿Quizás a través de la colección de campos de conjuntos de registros?

Estoy trabajando en cambios en mi aplicación “Registro de auditoría simple” y descubrí que los controles que están vinculados a campos de tablas de búsqueda aparentemente no tienen una propiedad “OldValue”.

Mientras recorro los controles de un formulario, tratando de identificar qué cambios en los valores de control deben publicarse en el registro, aparece un error en estos campos que indica que no tienen una propiedad OldValue. Actualmente solo estoy manejando el error y resumiendo mi bucle, pero me pregunto si hay alguna manera de identificar la tabla fuente de un valor a través del conjunto de registros.

Entonces, en una consulta que se ve así:

SELECT a.ID, a.someValue, a.file_ID, b.Filename FROM tableA as A LEFT JOIN tableB as b on a.File_ID = b.File_ID

¿Hay alguna manera, a través del conjunto de registros, de identificar que [SomeValue] proviene de la tabla A y [Filename] proviene de la tabla B?

RESPUESTA 

Esta respuesta ha sido dada por Happy.

Si he entendido bien la pregunta, lo que buscas se encuentra en la propiedad SourceTable de los campos de la consulta

Código

Dim qry As QueryDef
Dim Db As DAO.Database
Dim f As DAO.Field
Dim mySql As String
    
    mySql = "SELECT a.ID, a.someValue, a.file_ID, b.Filename"
    mySql = mySQl & " FROM tableA as A LEFT JOIN tableB as b on a.File_ID = b.File_ID"

    Set Db = CurrentDb

    Set qry = Db.QueryDefs(mySql)

    For Each f In qry.Fields

        Debug.Print f.Name, f.SourceTable

    Next

Taggs:
Related Posts
Opciones de impresión a través de código

Pregunta Sé cómo imprimir un informe mediante código y sé cómo hacer para que aparezca el cuadro de diálogo imprimir,…

Totales por página

Cómo conseguir en un informe calcular sólo el total para cada página

Write a comment