Formularion con tabla de ref cruzada

Tengo dos tablas una Cliente y otra Ventas, he creado dos consulta con estas tablas mas una de ref. Cruzada con la de ventas (meses/años).

He creado un formulario con los datos del cliente, y en su cabecera un combo para poder seleccionar el cliente. Hasta aquí todo bien se presenta el cliente seleccionado y todo bien. El problema lo tengo cuando creo un subformulario con la consulta de Ref. Cruzada, en las propiedades en Datos vinculo campos principales y secundarios con "CodCliente" y este es el erro que me da.

Alguien podría ayudarme en esto.

1 Respuesta

Respuesta
2

Para poder usar sin problemas la consulta de referencias cruzadas, deberías "fijar" las columnas (el campo que hace de encabezado), y por fijar me refiero a que siempre tenga el mismo número de columnas, independientemente de los datos que tengas en las tablas.

Un ejemplo típico sería usar como encabezados de columnas los meses, y además, establecerlos en el diseño de la consulta para que siempre salgan los 12, tengan o no datos.

Eso lo puedes conseguir haciendo la consulta de esta forma (te pongo la SQL):

TRANSFORM Sum(Gastos. Cuantia) AS SumaDeCuantia
SELECT Gastos.TipoGasto, Sum(Gastos.Cuantia) AS Total
FROM Gastos
WHERE (((Year([fecha]))=Year(Now())))
GROUP BY Gastos.TipoGasto, Year([fecha])
PIVOT Format([Fecha],"mmm") In ("ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic");

Fíjate en lo que te marco en negrita: le paso los nombres de todos los meses, con lo que consigo que la consulta siempre devuelva 14 columnas (los 12 meses, el tipoGasto y el total)

Por lo poco que veo del diseño del subformulario, creo que esto solucionará tu problema, y tu subformualrio mostrará, para el cliente los meses en columnas y os años en las filas.

Si quieres los años en las columnas, también lo puedes hacer, especificando unos cuantos hacia adelante: .... PIVOT Year([Fecha]) In (2014,2015,2016,2017....)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas