Access - Problema con función Nombre mes en una consulta

 
Vista:
sin imagen de perfil

Problema con función Nombre mes en una consulta

Publicado por Andrés (7 intervenciones) el 28/02/2023 12:16:23
Tengo una consulta en la que tiene un campo NumeroMes en la que tengo una serie de número de meses. En dicha consulta añadí un campo NombreMes con la siguiente fórmula:


1
MesLetra: NombreMes(Mes([MesNumero]))

El problema es que si el campo MesNumero es 1 me pone Diciembre, 2 Enero, en el 3 también Enero etc. ¿Cuál es el motivo? ¿Alguna Solución?

Acabo de crear otra consulta de una tabla poniendo números del 1 al 12 y me arroja estos datos:

MesNumero Nombre Mes
1 diciembre
2 enero
3 enero
4 enero
5 enero
6 enero
7 enero
8 enero
9 enero
10 enero
11 enero
12 enero
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

Problema con función Nombre mes en una consulta

Publicado por Anonimo (3316 intervenciones) el 28/02/2023 18:22:46
Acabo de verificarlo y el resultado en la ventana de inmediato es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
?Monthname(1)
enero
 
For NN=1 to 12:debug.Print nn, monthname(nn):next nn
 1            enero
 2            febrero
 3            marzo
 4            abril
 5            mayo
 6            junio
 7            julio
 8            agosto
 9            septiembre
 10           octubre
 11           noviembre
 12           diciembre
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

Problema con función Nombre mes en una consulta

Publicado por Andrés (7 intervenciones) el 01/03/2023 14:56:20
Gracias anónimo, Igual lo que pretendo no es posible, yo digo desde una consulta. Te pongo lo que hice (A ver si se, subir las fotos):


Foto-1

Foto-2
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

Problema con función Nombre mes en una consulta

Publicado por Anonimo (3316 intervenciones) el 01/03/2023 15:59:05
Funcionara de forma correcta si como parámetro se le pasa el numero del mes, (no la función MES dándole como parámetro un numero).

Si a la función MES (que espera una fecha) se le pasa un numero, ¿Qué se espera que devuelva?...

Ya que jugamos con fechas y una fecha es un numero de días a partir de una fecha consensuada:
Dado que una fecha se interpreta de forma diferente en América ( la que se utiliza en VBA) y Europa (configuración local).

¿Qué puede haber pasado en esa combinación de elementos?
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

Problema con función Nombre mes en una consulta

Publicado por Andrés (7 intervenciones) el 01/03/2023 16:39:28
Al cambiar el campo de número a fecha ya he visto lo que ha pasado. De ahí que sólo pusiese diciembre y enero

Foto-Consulta


Lo que pasa es que yo soy Administrativo no Programador ... imagino que lo que me comentas tengo que hacerlo desde algún formulario y mediante código. Continué pensando y .... EUREKA.

1
MesEnLetra: NombreMes([NumeroMes])

Mil gracias Anónimo
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

Problema con función Nombre mes en una consulta

Publicado por Anonimo (3316 intervenciones) el 01/03/2023 19:36:52
Para que quede diáfano:

En Europa la fechas: día/mes/año
En América (y VBA): mes/día/año

Se le pasa un numero que tiene que interpretar como fecha (y lo hace), pero como el día supera el numero de meses posibles, Access lo considera un error de escritura e intercambia mes y día para lograr una fecha con ese dato.

En ese intercambio el mes es el 12 (diciembre), en los siguientes como el dato que considera como mes (pero en Europa es el día) es inferior a (13) lo asume como numero de mes y da esa información que es incorrecta en Europa y correcta en América.

Conclusión: tener muy claro si estamos en VBA (América) o fuera de VBA (consultas, formularios, informes: Europa).

El problema esta en la capa de abstracción (la capa del idioma que modifica el formato de fecha, los decimales, separador de listas y 'traduce' las ordenes) lo que le permite a Access tomar decisiones por su cuenta (y no acierta siempre)
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