¿Cómo puedo conectar una celda de una tabla con el reporte de otra usando Microsoft Access?

De antemano te doy las gracias por ponerte a la orden para cualquiera que tenga preguntas. Mi pregunta es la siguiente:
¿Cómo hago para conectar una celda en especifico de una tabla en un reporte de otra tabla diferente? La razón es que deseo hacer reportes pero con titulo y numero del documento proveniente de otra tabla.

3 respuestas

Respuesta
1
Ayudo sólo por puro gusto; estoy a tus órdenes.
Respecto a lo que preguntas, hay dos formas de conectar los datos dentro de un reporte:
1. Cuando creas relaciones entre las tablas y haces un reporte (informe) principal de una tabla1 y le agregas un subinforme de una tabla2. De esta forma, al mostrar un registro de la tabla1, te mostrará en el subinforme los registros de la tabla2 relacionados con él.
2. La otra opción, que funciona para tomar datos sencillos (no relacionados), es usando la función DBúsq (Dlookup) la cual te devuelve el valor de un campo en otra tabla o consulta. Observa cómo debes usarlo:
Dlookup maneja 3 argumentos (parámetros):
- El campo que te va a devolver
- El nombre de la tabla de donde se tomará el valor
- Y una condición (¿no puedes devolver todos los registros, sólo uno, de acuerdo? :-)
Entonces, si deseo mostrar en mi informe un titulo que se encuentra en otra tabla, lo que hago es crear un cuadro de texto (textbox) y le indico que como origen del control me devuelva algo como esto:
=dlookup("Titulo","Documentos","Clave=" & [Clave])
Aquí le decimos a Access que nos muestre el Titulo de la tabla Documentos que coincida con la clave del campo Clave (que es un campo de la tabla de este reporte).
También podemos usar consultas sencillas que no tengan que ver con ningún campo de nuestro reporte actual:
=dlookup("Titulo","Documentos","Clave=3")
Y si lo que deseas es obtener el valor del primer registro de la tabla Documentos, entonces debes poner:
=dlookup("Titulo","Documentos")
Simplemente se omite la condición.
Por último, si dlookup no encuentra ningún registro que coincida con la condición, entonces devolverá nulo (null) y eso mostrará un error, entonces para atrapar ese error y no mostrar nada cuando salgan valores nulos, debes poner algo así:
=Iif(IsNull(dlookup("Titulo","Documentos","Clave=3")),"",dlookup("Titulo","Documentos","Clave=3"))
Aquí le decimos que si es nulo el valor devuelto por dlookup, entonces simplemente nos devuelva vacío ("") sino, que nos devuelva el valor de la búsqueda.
Debo prevenirte que poner un dlookup por cada registro que vayas a mostrar afectará el rendimiento de tu reporte/formulario/consulta. Usa unos cuantos cuando los necesites, es decir, úsalo con moderación.
Espero haberte ayudado con tu problema; y felicidades: la buena educación se nota :-)
Respuesta
1
Solo coloca en el origen del campo que tienes en el reporte lo siguiente:
=dlookup("[nombrecampo]","nombretabla")
Y listo
Espero te sirva, si tienes dudas vuelve a preguntar y si no
Respuesta
1
Puedes usar consultas combinando varias tablas y luego el informe que tire de dicha consulta. Otra solución puede ser que en la celda, dentro de la propiedad origen de control uses la siguiente expresión:
=DFirst(Campo,Tabla,Condicion)
Ejemplo:
=DFirst("Nombre","Clientes","DNI='652525'")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas