Access - Por qué me sale sintaxis no válida en criterio de fecha (último mes)

 
Vista:

Por qué me sale sintaxis no válida en criterio de fecha (último mes)

Publicado por Inerme (2 intervenciones) el 09/08/2021 22:22:08
Hola,

Después de estar consultando por Internet, vi que había una manera de añadir un criterio en una consulta de Access (tengo la versión 2016) para filtrar los registros del último mes. El criterio es:

1
Año([FechaVenta])* 12 + ParcFecha("m", [FechaVenta]) = Año(Fecha())* 12 + ParcFecha("m", Fecha()) - 1

Pero cuando introduzco dicho criterio me salta un mensaje informándome que la expresión que he escrito tiene una sintaxis no válida.

Pensé que [FechaVenta] lo tendría que modificar por [Fecha], ya que el campo que tengo se llama Fecha dentro de la tabla Ventas, lo que quedaría así:

1
Año([Fecha])* 12 + ParcFecha("m", [Fecha]) = Año(Fecha())* 12 + ParcFecha("m", Fecha()) - 1

Pero me sale el mismo mensaje de sintaxis no válida.

Alguien me podría ayudar a saber por qué me aparece ese error de sintaxis y cómo lo podría solucionar?

Muchas gracias, un saludo!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Por qué me sale sintaxis no válida en criterio de fecha (último mes)

Publicado por Anonimo (3316 intervenciones) el 09/08/2021 23:38:15
Si la expresión se esta intentando aplicar en VBA (no en una consulta/formulario/informe/macro) se ha de utilizar el idioma de sus creadores (el ingles), en lugar de 'Año' ==> YEAR, en lugar de 'ParcFecha' ==> DatePart y así con el resto.

Si alguna de ellas esta traducida (algo que en ese entorno común a todos los idiomas es poco probable), la traducirá 'el' y funcionara igualmente (pero no confundamos como se le han de dar las ordenes y como el las entiende y después traduce ....o lo intenta).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Por qué me sale sintaxis no válida en criterio de fecha (último mes)

Publicado por Inerme (2 intervenciones) el 10/08/2021 00:02:08
Hola y gracias por tu respuesta.

Pero no es VBA, sino un criterio en una consulta de Access 2016. Al tener instalada una versión en español, los criterios no funcionan en inglés.

Y, por lo que he visto en la misma web de soporte de Microsoft, hay que utilizar "Año()", "Fecha()" y "ParcFecha()". Si pusiera "Year()", "Date()" o "DatePart()" no lo reconoce como sintaxis.

Alguna idea me podéis dar?

Gracias, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Por qué me sale sintaxis no válida en criterio de fecha (último mes)

Publicado por Anonimo (3316 intervenciones) el 10/08/2021 16:20:06
Analizando el post original (teniendo claro que NO se esta haciendo en VBA) y siendo (supuestamente) una condición en una consulta (se supone que generada con el generador grafico que tiene Access), he de darle la razón a Access, esa sintaxis NO es valida, porque no es una condición: es una igualdad.

El generador grafico de Access utiliza un criterio (a, b , c ...) que comparara con el campo/dato que hay en la cabecera de esa misma columna.
Entre ambos elementos en ubicaciones diferentes (y cada uno donde debe estar) se crea la igualdad o criterio.

Yo utilizaría otra técnica:

Al dato que contiene la fecha (el campo FECHA de esa tabla o conjunto de datos) le aplico un formato que devuelva el mes y año (yyyymm o aaaamm)

1
FechaX: Format([Fecha];"aaaamm")

Y como criterio (y como referente la fecha actual) tomaría el mes anterior, a ese dato le aplico el mismo formato (para que sean compatibles/comparables).

1
Format(SerieFecha(Año(Fecha());Mes(Fecha());0);"aaaamm")

Para lograr éxito en la programación se requieren dos cosas:
.- Tener claro lo que se pretende
.- Saber transmitirselo al que lo ejecutara

Nota:
En la expresión para obtener 'el mes anterior' se genera una fecha en base a la actual y como día el cero ==> equivale al ultimo día del mes anterior y el dia (al darle ese formato a la fecha) no se tiene en cuenta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Por qué me sale sintaxis no válida en criterio de fecha (último mes)

Publicado por Irizarry (4 intervenciones) el 31/08/2021 11:13:57
Gracias por compartir una visión tan grande del análisis. Espero que, la gente hoy en día esté dispuesta a trabajar con las empresas como https://ejemplius.com/muestras-de-ensayos/ciencia/ para obtener suficiente asistencia con respecto a los textos y otros servicios relacionados con la escritura. Así como este. Les preguntaré si pueden proporcionar tal servicio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Por qué me sale sintaxis no válida en criterio de fecha (último mes)

Publicado por Lizarry (4 intervenciones) el 24/12/2021 10:00:30
Muy impresionante.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Eduardo

Por qué me sale sintaxis no válida en criterio de fecha (último mes)

Publicado por Eduardo (317 intervenciones) el 25/12/2021 22:01:01
Otra alternativa, le explico graficamente:


Mes_anterior_00
Voy a calcular las ventas del mes anteior:

Mes_anterior_01
Resultado de la consulta:

Mes_anterior_02
Efectivamente, obtengo las ventas del noviembre del año actual (2021). Si fuera a calcular al mes de la fecha suprima el -1.

Como recomendación, trate hacer los cálculos con valores numéricos si utiliza Format() está obteniendo es una cadena.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Por qué me sale sintaxis no válida en criterio de fecha (último mes)

Publicado por Anonimo (3316 intervenciones) el 26/12/2021 00:34:16
Hay muchos caminos para llegar a un destino (suele decirse que 'todos los caminos llevan a Roma'), pero el mas corto suele ser el mas eficiente en el mundo de la programación.

Para aplicar un filtro la condición indispensable es que ambos términos de la igualdad sean compatibles (esto es: 'comparables') y el color ... al gusto de cada uno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Eduardo

Por qué me sale sintaxis no válida en criterio de fecha (último mes)

Publicado por Eduardo (317 intervenciones) el 26/12/2021 02:09:37
No necesarimaente el camino corto hace que el tiempo de ejecución de una consulta de mas rápida. Ahora, si lo miramos desde el punto de vista SQL utilizar Format se sale del estandar, por ejemplo utizo PostgreSQL como backend en donde ese tipo de instrucciones no sirven para nada, ahora es que diga pero estamos en Access.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Por qué me sale sintaxis no válida en criterio de fecha (último mes)

Publicado por Anonimo (3316 intervenciones) el 26/12/2021 10:45:00
La programación eficiente se logra cuando se conoce al medio y se utilizan todos sus recursos, me parece poco eficiente utilizar técnicas creadas para otros entornos además de un despilfarro de recursos, solo les es útil a los que se encasillan y solo utilizan lo que ya conocen sin importarles el resto.

Si realmente quisiera logra la mayor eficiencia, NO utilizaría una conversión a texto o varias a número que después habrá que conjugar para lograr el mismo objetivo, utilizaría el formato REAL de la fecha en Access para minimizar el tiempo de proceso.

No nos pongamos a pleno sol y 40 grados un abrigo de piel solo porque lo necesitan en el Polo Norte para sobrevivir, en cada entorno se ha de programar con las herramientas de ese entorno o las de otro entorno (adaptado a la necesidad)) si el entorno carece de ellas.

Si en verdad hubiera un entornos de programación que cumpla en absolutamente todos los frentes y además fuera asequible tanto en tiempo de aprendizaje como en el apartado económico, el resto quedaría obsoleta en un ciclo muy corto.

Entretanto: al Cesar lo que es del Cesar y a Dios lo que es de Dios (y la frase no es mía, es prestada).

Y si es correcto:
Este foro es de Access para bien o mal y pese a quien pese (los hay de MySQL, de SQL Server de 'PostgreSQL' como almacén de datos... etc.) y cada uno en su casa dispuestos a entenderse como buenos vecinos.

Lo interesante de estos foros públicos es dejar lugar a la creatividad (todos podemos aprender) y no veo que sea muy creativo lo de copiar y pegar sin más (para eso también hay foros, por ejemplo 'el rincón del vago' y asimilados)

Y para dejar todo claro: todo lo expuesto en este foro no es mas que mi personal punto de vista.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Eduardo

Por qué me sale sintaxis no válida en criterio de fecha (último mes)

Publicado por Eduardo (317 intervenciones) el 26/12/2021 13:41:42
Las herramientas sirven pero que pasa si se utilizan indebidamente nos llevan a realizar procesos innecesarios, no se trata de ir a otros entornos, SQL tiene sus reglas y Access sigue estos lineamientos, lamentablemente no somos perfectos y a veces no aceptamos las soluciones que dan otras personas, no podemos imponer un modelo solo es ofrecer otra alternativa, por esto comencé mi respuesta con la palabra "Otra aterntiva ...". Invito a ANOMIMO a que se limite al foro exclusivamente y si quiere podemos debatir utilizando el correo, en este caso, son bienvenidos sus comentarios a mi correo [email protected], de lo contrario se convierte el foro en solo literatura barata.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Por qué me sale sintaxis no válida en criterio de fecha (último mes)

Publicado por Anonimo (3316 intervenciones) el 26/12/2021 15:14:52
Estoy de acuerdo en que en este foro solo se debería hablar de Access y el resto cada uno en su lugar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Por qué me sale sintaxis no válida en criterio de fecha (último mes)

Publicado por Lizarry (4 intervenciones) el 31/01/2022 14:49:46
Gracias, me ha sido muy útil. Parece que comprendes el tema realmente bien. Creo que le será muy útil a otros también.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de VelezGuerrero

Por qué me sale sintaxis no válida en criterio de fecha (último mes)

Publicado por VelezGuerrero (1 intervención) el 30/03/2023 01:32:14
Si, tienes razón. Se ve muy claro el consentimiento y comprensible para los demás. ¡Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar