Extraer el mes de una fecha en función de un parámetro

Dispongo de un formulario: [MESAÑOPAGOS] que actúa de selector del mes con el campo [NumeroMes] con el cual queremos extraer los movimientos de ventas no cobradas, pero a la vez, ha de sacar las posibles ventas que no han sido cobradas de todos meses anteriorres al mes indicado.

Estoy utilizando esta función pero no me actúa correctamente ya que me saca el mes que le solicito más el resto de los meses con cobros pendientes.

En el Formulario que ha de sacar la relación tengo colocados estos parámetros dentro de Propiedades - Origen del Registro

Extraccion del mes:  VerMes: ParcFecha("m";[FechaPago])

Comparacion Mes: [Formularios]![MESAÑOPAGOS]![NumeroMes]

1 respuesta

Respuesta
2

No consigo entender cual es el problema, por más que leo tu pregunta...

La forma que usas para sacar el mes de una fecha (con la función ParcFecha) es correcta. Otra forma sería usar la función Mes().

Si dices que te devuelve más registros de los que debiera es porque tienes mal construido el filtro en algún lado (propiedad filtro, en la consulta origen del formulario...)

Lo que no tengo ni la más remota idea de a qué te refieres es con esto:

En el Formulario que ha de sacar la relación tengo colocados estos parámetros dentro de Propiedades - Origen del Registro

Extraccion del mes:  VerMes: ParcFecha("m";[FechaPago])

Comparacion Mes: [Formularios]![MESAÑOPAGOS]![NumeroMes]

Me refiero que tengo colocados estos parámetros que te indicado como filtro de fechas en las propiedades dentro del Origen de los datos:.

A la vez estoy utilizando los siguientes y únicos filtros:

Control de Pagado:

Campo: PAGADO

Criterios: "N"

Control del Mes:

 VerMes: ParcFecha("m";[FechaPago])

Criterios: <=[Formularios]![MESAÑOPAGOS]![NumeroMes]

Control del Año:

Año([FechaPago])

Criterios: <=[Formularios]![MESAÑOGASTOS]![Ejercicio]

En el momento que le coloco al Criterio <= es cuando ya no actua bien el filtro porque me saca el total de todos los meses  de movimientons no limitandose unicamente al mes solicitado y meses anteriores

Prueba sacando el mes con la función Mes(), y si no te funciona, ponme una imagen con el diseño de la consulta, o bien su SQL

He probado con la función Mes() y me hace lo mismo.

Tengo de mandarte la imagen de esta forma. Si te mando la SQL me dice que hay demasiadas mayúsculas en el texto.

No se como podría mandártelo de otra forma.

Pues a tu consulta no le veo nada raro, y te tendría que funcionar con los criterios que tienes.

¿Probaste a cambiar las referencias al formulario por un valor fijo, a ver si así te funciona correctamente o no?. Por ejemplo, <=10 (para el mes) y =2016 (para el año)

Si no tendría que ver tu archivo para tratar de averiguar dónde está el problema...

He probado el darle directamente en el criterio el Mes y el Año indicándole: <=10  y  <=2016 y me funciona perfectamente me saca los cobros pendientes hasta la fecha indicada.

¿Dónde crees que he de buscar el error? Porque en dos campos que he creado sobre el formulario para visualizar los datos que me llegan el numero de mes y numero de año extraído del form: [Formularios]![MESAÑOPAGOS]![NumeroMes], y [Formularios]![MESAÑOGASTOS]![Ejercicio] me da el el mes correctamente al igual que el año pero en el criterio no actúa correctamente si lo hago a través de estos parámetros de filtro que te he indicado anteriormente.

Pues las únicas posibilidades son:

1º/ Que tengas mal algún nombre en [Formularios]![MESAÑOPAGOS]![NumeroMes] o [Formularios]![MESAÑOGASTOS]![Ejercicio]

2º/ Que los cuadros del formulario cojan algún valor incorrecto (con decimales o algo así)

Porque si la consulta te funciona con valores "fijos", con criterios referenciados al formulario tiene que funcionar igual de bien

He estado revisando todo, y no he enontrado nada que este mal escrito y la verdad es que no se donde pueda estar el error.

Lo he solucionado de una forma ambigua para poder subsanar el acceso y ha sido a través de buscar el día ultimo del mes que este pidiendo a través de;

             FechaBuscar=SerieFecha(Año(Fecha());Mes(Fecha())+1;0)

 y en el formulario le he indicado:

          FechaPago<=[Formularios]![MESAÑOGASTOS]![FechaBuscar]

Y de esta forma me funciona bien y no lo entiendo porque no de la otra forma.

Muchas gracias por toda tu ayuda

Pues yo tampoco me explico por que no te funciona. Pero si lo has conseguido hacer funcionar de otra forma, ¡Estupendo!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas