La consulta utilizando datos del formulario no devuelve información real

Tengo la siguiente tabla:

si realizo la siguiente consulta:

SELECT Sum(MOVIMIENTOS.CAJAD) AS cajadebe, sum(MOVIMIENTOS.CAJAH) AS cajahaber, (cajadebe-cajahaber) AS diferencia
FROM MOVIMIENTOS
WHERE MONTH(MOVIMIENTOS.FECHA) <=5 AND Year(MOVIMIENTOS.FECHA) =2019;

me devuelve el valor:

Sin embargo, si el mes lo introduzco a través de un formulario la consulta me devuelve otro valor, ejemplo:

No se porque pasa esto. Si pudieran ayudarle

2 Respuestas

Respuesta
1

No sé como la tienes construida, pero ambas están mal, al menos si es esa la tabla que has puesto.

Construyo la consulta

Y el resultado

Ahora vamos a usar un formulario y en criterios la pongo como

En mes, me olvidé de ponerle <=forms! Pero es lo mismo. Si en el formulario 1, escribo un mes y un año y pulso el botón, aunque éste último no sería necesario

Cuando lo pulso me sale exactamente lo mismo que antes

En el botón sólo le he puesto

DoCmd. OpenQuery "consulta2"

¡Gracias! Por la ayuda, te voy a enviar más datos pues parece que omití algunos a la hora de solicitar la ayuda. Gracias nuevamente

Respuesta
2

Lo primer decirte que si el pantallazo de la consulta se corresponde con los 6 datos que muestras en al tabla, algo falla en tu BD, pues "calculadora en mano", la suma del debe y del haber con esos datos es de 59645, y la diferencia sería 0.

Por otro lado, que lo hagas directamente o a través de un formulario es indiferente, con los mismos datos y parámetros el resultado tiene que ser, sí o sí, el mismo (salvo que hayas hecho diferente una consulta sin darte cuenta).

Mi punto es que esta consulta:

SELECT Sum(MOVIMIENTOS.CAJAD) AS cajadebe, sum(MOVIMIENTOS.CAJAH) AS cajahaber, (cajadebe-cajahaber) AS diferencia
FROM MOVIMIENTOS
WHERE MONTH(MOVIMIENTOS.FECHA) <=5 AND Year(MOVIMIENTOS.FECHA) =2019;

Y esta otra (supongamos un formulario "Formulario1" con los cuadros de texto txtMes y txtAño con los valores 5 y 2019 en ellos):

SELECT Sum(MOVIMIENTOS.CAJAD) AS cajadebe, Sum(MOVIMIENTOS.CAJAH) AS cajahaber, (cajadebe-cajahaber) AS diferencia
FROM MOVIMIENTOS
WHERE (((Month([MOVIMIENTOS].[FECHA]))<=[Formularios]![Formulario1]![txtMes]) AND ((Year([MOVIMIENTOS].[FECHA]))=[Formularios]![Formulario1]![txtAño]));

dan exactamente el mismo resultado.

Y aquí lo puedes comprobar: http://www.filebig.net/files/rmHzCUJW7h 

¡Muchas Gracias! por la ayuda, al ejemplo que me enviaste le realice unas adecuaciones de lo que en realidad necesito y todo me salió bien; de todas formas le enviaré la bd que tiene el problema para que lo puedas apreciar directamente. Gracias nuevamente

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas