30 Jun Consulta de Referencias cruzadas en Access con parámetros
Es frecuente hacer una consulta SQL de referencias cruzadas en Access basada en una primera consulta que prepara los datos y los filtra en función de unos parámetros.
Consulta con parámetros en un formulario
La 1ª consulta con parámetros funciona bien pero la 2ª da un error al ejecutarse del tipo: “El motor de base de datos Microsoft Jet no reconoce … como un nombre de campo o expresión válidos”.
Hay que hacer lo siguiente:
- Suponemos que la 1ª consulta se basa en dos campos de fecha que están en un formulario y los campos se llaman: [Desde Fecha] y [Hasta Fecha]
- La primera consulta, la de selección, usa este dos campos para filtrar los datos.
- En la segunda consulta una vez construida y estando en el modo de diseño se debe ir a la barra de menús superior e ir a la opción Consulta->Parámetros y aparece una tabla de doble entrada donde pone Parámetro y Tipo de datos.
- Insertaremos tantas filas como parámetros tengamos, en nuestro caso serán dos:
- [Formularios]![NombreFormulario][Desde Fecha], tipo de datos Fecha/Hora
- [Formularios]![NombreFormulario][Hasta Fecha], tipo de datos Fecha/Hora
- Ahora podremos ejecutar la consulta sin que de errores.
Si los parámetros no están en un formulario si no directamente en la primera consulta el procedimiento en la 2ª consulta es el mismo. Para un criterio directo como True, False, mayor o menor, etc. no hace falta crear parámetros en la segunda consulta.
Consulta con parámetros en la primera consulta
Si lo que tenemos es un parámetro directo en la primera consulta el procedimiento es el mismo que en el punto anterior. La diferencia está que cuando vamos a Consulta>Parámetros en la primera columna pondremos el nombre del parámetro.
En la imagen inferior se puede ver como son las consultas y los parámetros. Como aclaración diré que la primera consulta del ejemplo es una consulta de agrupación en vez de un consulta normal. Esto no es relevante para el método pero mejor aclararlo. Con consultas normales se debe hacer lo mismo.
Minolas
Publicado en 22:54h, 29 eneroOK, PERFECTO!
Funciona. Ya había perdido 1 semana intentando hacer este filtro por fecha de multitud de formas.
Gracias por la respuesta 🙂
Alex Borrás
Publicado en 11:00h, 30 eneroMe alegro de que te haya sido útil este tip de Access
Roberto
Publicado en 12:52h, 29 marzoHola. He probado el procedimiento que expones y funciona. La consulta la hace correctamente sin errores, y si abro un formulario para ver la consulta en formato tabla la abre, pero si inserto ese formulario con la consulta de referencias cruzadas como subformulario en otro formulario, el subformulario de la consulta sale en blanco. ¿Sabes porqué?.
Gracias
Alex Borrás
Publicado en 18:49h, 19 abrilEso de poner la consulta de referencias cruzadas en un subformulario no lo he probado. Es un tema complejo porque una tabla de referencias cruzadas tiene columnas variables y eso hace difícil tanto ponerlo en formularios como en informes. Si quieres pásame un mdb de ejemplo con la consulta y el formulario/subformulario y le doy un vistazo
AquilezBaezaarturo
Publicado en 02:37h, 13 septiembreBUENAS NOCHES AL HACER UN INFORME ME PIDE VARIAS VECES QUE PONGA EL VALOR DEL PARAMETRO, POR QUE LO HACE?
Alex Borrás
Publicado en 07:29h, 13 septiembreEso es porque no encuentra la segunda consulta no encuentra buen definido el parámetro. Sigue los pasos y en teoría no te debe fallar.
jorge Ivan
Publicado en 03:12h, 09 eneroExcelente Mil y Mil Gracias!!!!!!!
Josss
Publicado en 12:57h, 05 marzoHola: Me pasa como a AquilezBaezaarturo. La segunda consulta funciona perfectamente (lo único extraño es que cuando hago “Guardar”, me pide el parámetro…) pero he creado un informe a partir de la segunda consulta y me pide dos veces el parámetro.
¿Sabes a qué puede ser debido?
Josss
Alfonso
Publicado en 22:25h, 22 abrilHola como estas, tengo dos tablas, en la una tengo: numero de pedido, con su proveedor, y en la otra tengo el numero de pedido y los clientes a los que envié el producto (Hay veces se van en varios clientes).
Hice un informe cruzado, pero me salen tantas hojas como clientes, es decir si se fue un X pedido a 3 clientes me salen tres hojas, como hago para que en el informe me salga: NUMERO DE PEDIDOS, PROVEEDOR y CLIENTES (SE DETALLE EN LA MISMA HOJA). Muchas Gracias por tu ayuda, espero haberme explicado de la mejor manera.
Alex Borrás
Publicado en 23:09h, 08 mayo¿podrías enviar un mdb de ejemplo en formato Access 2003 y le hecho un vistazo?
Alex Borrás
Publicado en 23:12h, 08 mayoSeguro que es por la forma de poner el parámetro. Si se hace exactamente como se explica debería funcionar sin pedirlo.
Jorge Ivan
Publicado en 20:51h, 11 mayoExcelente muchas gracias, me fue muy útil su información