Filtro por mes
De nuevo telemaco poco a poco consigo que funcione mi base de datos faltan algunos "detallitos" como puedo en un informe o en una consulta me pida filtro por mes
Ejemplo:tengo varios informes basados en consulta con los parámetros desde hasta y tengo que poner toda la fecha puede ser uno que le diga desde el mes 1al mes 5 por ejemplo.
Ejemplo:tengo varios informes basados en consulta con los parámetros desde hasta y tengo que poner toda la fecha puede ser uno que le diga desde el mes 1al mes 5 por ejemplo.
1 Respuesta
Respuesta de telemaco
1
1
telemaco, He trabajado 5 años desarrollando aplicaciones tanto en access...
Claro... puedes decir que desde el mes 1 hasta el mes 5... llena el combo alimentado de mese(números) y el nombre.. para que al usuario le muestre el nombre pero se trabajae con el numero, que es lo que nos interesa...
Lo que pasa es que para poder utilizar este mes, debes en el origen del registro del informe, que me imagino que sera una consulta o una tabla... debe haber un campo por el que filtraras por mes... es decir ahora estas filtrando por un campo llamado FECHA imaginemos, pero como quiero pasar ahora es el mes... debo utilizar un campo que me muestre el mes... para eso simplemente coloca otro campo en la consulta así:
Month([Fecha])
Y listo le colocas un alias y filtraras por este cvampo... si necesita la fecha tal como es dejala también, no importa.. lo importante es para poder filtrar por mes debe existir el campo que me bote el mes.
Att:telemaco
Lo que pasa es que para poder utilizar este mes, debes en el origen del registro del informe, que me imagino que sera una consulta o una tabla... debe haber un campo por el que filtraras por mes... es decir ahora estas filtrando por un campo llamado FECHA imaginemos, pero como quiero pasar ahora es el mes... debo utilizar un campo que me muestre el mes... para eso simplemente coloca otro campo en la consulta así:
Month([Fecha])
Y listo le colocas un alias y filtraras por este cvampo... si necesita la fecha tal como es dejala también, no importa.. lo importante es para poder filtrar por mes debe existir el campo que me bote el mes.
Att:telemaco
OK. Ya esta solucionado también. Sigo dándole vueltas al stock de tanques ¿t acuerdas)antes de irte de vacaciones de semana santa ;)
Gracias
Gracias
Hola telemaco una preguntilla ¿lafunción DBúsq se puede usar en un informe para mostrar el registro anterior del mismo informe?
Gracias
Gracias
¿En un informe para mostrar el registro anterior del mismo informe?
Pues no lo consigo me da #error
En el informe tengo los campos fecha,
consumo, stock en la sección detalle.
Creo otro cuadro texto y le pongo en origen de control
=DBúsq("[stock";"[stock tanques]";"[FECHA]"="[FECHA]+1")
¿Me tendría que salir el stock de la fecha anterior no? El informe se llama stock tanques.
gracias por aclararme ;)
Pues no lo consigo me da #error
En el informe tengo los campos fecha,
consumo, stock en la sección detalle.
Creo otro cuadro texto y le pongo en origen de control
=DBúsq("[stock";"[stock tanques]";"[FECHA]"="[FECHA]+1")
¿Me tendría que salir el stock de la fecha anterior no? El informe se llama stock tanques.
gracias por aclararme ;)
Disculpe la demora en contestar...
Lo que pasa como es la anterior no debería ser:
...[fecha]-1...
Otra cosa... volví a revisar lo que me habías comentado... pero ahora más que nunca te lo vuelvo a decir... deberías crear una tabla "temporal".. que solo la llenaras cuando necesitas la consulta... pero antes de esto eliminas TODOS LOS DATOS... ahora ejecutas código ya sea en un formulario... que hará esto... buscara los registros que necesites... recorrerás la tabla, por ejemplo de almacen para recuperar la descripción... y la insertaras en la tabla... ahora esto lo podrás hacer con un recordset... recorres todos los almacenes (registros), pero en cada uno de ellos buscara la información que me dices... el stock de la fecha anterior, osea harás una consulta por DBusq.. con la fecha anterior, para traerte el strock anterior... y te traerás el actual de la tabla necesario... filtrando por referencia...
Así registro por registro... y llenaras la temporal que necesitas...
Es la única posibilidad que veo, ya que por l otro lado las consultas quedaran pesadaas y no devolverán la información necesaria...
Att:telemaco
Lo que pasa como es la anterior no debería ser:
...[fecha]-1...
Otra cosa... volví a revisar lo que me habías comentado... pero ahora más que nunca te lo vuelvo a decir... deberías crear una tabla "temporal".. que solo la llenaras cuando necesitas la consulta... pero antes de esto eliminas TODOS LOS DATOS... ahora ejecutas código ya sea en un formulario... que hará esto... buscara los registros que necesites... recorrerás la tabla, por ejemplo de almacen para recuperar la descripción... y la insertaras en la tabla... ahora esto lo podrás hacer con un recordset... recorres todos los almacenes (registros), pero en cada uno de ellos buscara la información que me dices... el stock de la fecha anterior, osea harás una consulta por DBusq.. con la fecha anterior, para traerte el strock anterior... y te traerás el actual de la tabla necesario... filtrando por referencia...
Así registro por registro... y llenaras la temporal que necesitas...
Es la única posibilidad que veo, ya que por l otro lado las consultas quedaran pesadaas y no devolverán la información necesaria...
Att:telemaco
Bueno supongo tendrás toda la razón
pero como sabes soy gallego y claro también soy algo cabezón :).
Eso que me dices de crear una tabla emporal".. recordset etc pa mi se sale de mis conocimientos por eso lo intento hacer con la función dbusq en el informe y me sale error efectivamente seria...[fecha]-1 pero me sale #error.
Ya se que ralentiza mucho porque son muchos registros pero yo pongo antes un filtro por mes osea antes de lanzar el informe me pide de que mes y solo seria los registros de ese mes ¿esto haría que no fuese tan pesada no?
Gracias por tu paciencia .
pero como sabes soy gallego y claro también soy algo cabezón :).
Eso que me dices de crear una tabla emporal".. recordset etc pa mi se sale de mis conocimientos por eso lo intento hacer con la función dbusq en el informe y me sale error efectivamente seria...[fecha]-1 pero me sale #error.
Ya se que ralentiza mucho porque son muchos registros pero yo pongo antes un filtro por mes osea antes de lanzar el informe me pide de que mes y solo seria los registros de ese mes ¿esto haría que no fuese tan pesada no?
Gracias por tu paciencia .
Disculpa la demora...
Lo que pasa es que debes formatear la fecha, y ademas si es nula (porque el primer registro no tendrá datos, ya que no existe fecha anterior)... ademas hay que igualar la expresión de fecha como es, mira esta sintaxis:
=Nz(DBúsq("[IdPedido]","[Pedidos]","[FechaPedido]=#" & Formato(([FechaPedido]-1),'mm/dd/aaaa') & "#"),0)
La función Nz, con el cero al final... devolverá cero (SI ES NULA)... ademas la fecha la formateamos como Mes/dia/año..ya que así utiliza las consultas de fecha... ademas hay que colocarla entre estos símbolos:
#" & Formato(([FechaPedido]-1),'mm/dd/aaaa') & "#
Porque el campo es tipo fecha... si fuera texto, en vez de los símbolos números se coloca comilla sencilla (')...
Att:telemaco
Lo que pasa es que debes formatear la fecha, y ademas si es nula (porque el primer registro no tendrá datos, ya que no existe fecha anterior)... ademas hay que igualar la expresión de fecha como es, mira esta sintaxis:
=Nz(DBúsq("[IdPedido]","[Pedidos]","[FechaPedido]=#" & Formato(([FechaPedido]-1),'mm/dd/aaaa') & "#"),0)
La función Nz, con el cero al final... devolverá cero (SI ES NULA)... ademas la fecha la formateamos como Mes/dia/año..ya que así utiliza las consultas de fecha... ademas hay que colocarla entre estos símbolos:
#" & Formato(([FechaPedido]-1),'mm/dd/aaaa') & "#
Porque el campo es tipo fecha... si fuera texto, en vez de los símbolos números se coloca comilla sencilla (')...
Att:telemaco
Hola nuevamente telemaco.
=Nz(DBúsq("[IdPedido]","[Pedidos]","[FechaPedido]=#" & Formato(([FechaPedido]-1),'mm/dd/aaaa') & "#"),0)
tuve q borrar ,0) y poner ; donde estaban las comas y aunque tarda un poco funciona pero ...como alguna pega tenia q ver me devuelve el valor anterior de la consulta no del informe
=DBúsq("[TEORICO]";"stock tanques consulta";"[FECHA]=#" & Formato(([FECHA]-1);'mm/dd/aaaa') & "#")
Donde pone "stock tanques consulta" probé a poner "stock tanques informe"
Y nada también probé "stock tanques"![informe] Y sale error
Espera demos el paso final :)
=Nz(DBúsq("[IdPedido]","[Pedidos]","[FechaPedido]=#" & Formato(([FechaPedido]-1),'mm/dd/aaaa') & "#"),0)
tuve q borrar ,0) y poner ; donde estaban las comas y aunque tarda un poco funciona pero ...como alguna pega tenia q ver me devuelve el valor anterior de la consulta no del informe
=DBúsq("[TEORICO]";"stock tanques consulta";"[FECHA]=#" & Formato(([FECHA]-1);'mm/dd/aaaa') & "#")
Donde pone "stock tanques consulta" probé a poner "stock tanques informe"
Y nada también probé "stock tanques"![informe] Y sale error
Espera demos el paso final :)
Pero se supone que debe devolver el de la consulta... ya que se basa en ella, la idea es que coloque el campo y el nombre de la tabla que utiliza el informe... osea "[pedidos]" porque se basa el informe en ella, y buscara el anterior de la misma... o el nombre de la consulta...
Se deberá mirar como tiene el informe...
Yo sigo insistiendo en la temporal... ya que la llenaras como la necesitas... recorrerás la tabla general... y luego buscaras las existencias anteriores haciendo una consulta de buscar la fecha anterior y la insertara con los demás datos...
Att:telemaco
Se deberá mirar como tiene el informe...
Yo sigo insistiendo en la temporal... ya que la llenaras como la necesitas... recorrerás la tabla general... y luego buscaras las existencias anteriores haciendo una consulta de buscar la fecha anterior y la insertara con los demás datos...
Att:telemaco
- Compartir respuesta
- Anónimo
ahora mismo