Imprimir página | Cerrar ventana

Convertir fecha a cadena de texto

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84974
Fecha de impresión: 18/Abril/2024 a las 08:12


Tema: Convertir fecha a cadena de texto
Publicado por: Flyfish
Asunto: Convertir fecha a cadena de texto
Fecha de publicación: 29/Enero/2020 a las 08:48
Muy buenas.

Estoy preparando una base de datos en la que genero partes de trabajo por fecha y por turno, tres al día, y luego se meten los datos de la producción referentes a esos partes.

Tengo un campo en el que introduzco el turno (M, T, N) y otro con la fecha del día en curso.

Y necesito pasar la fecha a texto de modo que lo pueda unir al turno y generar con ello un tercer campo que será el nombre del parte, para que quede, previo formateo del campo fecha, tal que así:

20200129_M

El problema lo estoy encontrando en convertir la fecha a texto, lo demás lo he conseguido hacer sin problema.

Muchas gracias, y saludos.



Respuestas:
Publicado por: VIMIPAS
Fecha de publicación: 29/Enero/2020 a las 09:11
Hola buenos días.

¿Me puedes poner una fecha para que yo la vea?.

En 20200129 ???, yo no vea ninguna fecha.

Saludos.


-------------
Gracias


Publicado por: mounir
Fecha de publicación: 29/Enero/2020 a las 09:16
Hola!

Formatea la fecha en una consulta:-

Fecha_Formateada: Format([Campofecha];"aaaammdd")&"_"&[CampoTurno]

-------------
Un Saludo.


Publicado por: VIMIPAS
Fecha de publicación: 29/Enero/2020 a las 09:16
De todas formas yo haría esto, para un día como hoy:

Mifecha= 29/01/2020
Midigito= "M"

Mitercercampo= Cstr(Mifecha) & "_" & Midigito

Obtendríamos 29/01/2020_M

Otra forma puede ser quitando los / , pero voy a esperar a que tu te expliques un poco mas.

Saludos.




-------------
Gracias


Publicado por: Flyfish
Fecha de publicación: 29/Enero/2020 a las 09:20
Cierto, perdona, no quedaba lo suficientemente claro. De hecho, nada claro.

La fecha origen sería, por ejemplo, la de hoy: 29/01/2020

Le aplico formato en un campo que quiero utilizar para crear el nombre: 

Formato(aaaammdd)

con lo que me queda la fecha en ese campo así: 20200129

En otro campo tengo los turnos M, T y N, y quiero unirlo a la fecha anterior en un tercer campo para que me quede en este formato:

20200129_M

Y el problema es que no sé cómo convertir la fecha a un string que pueda utilizar para unir al turno.

Gracias y saludos.


Publicado por: Flyfish
Fecha de publicación: 29/Enero/2020 a las 09:25
Publicado originalmente por VIMIPAS VIMIPAS escribió:

De todas formas yo haría esto, para un día como hoy:

Mifecha= 29/01/2020
Midigito= "M"

Mitercercampo= Cstr(Mifecha) & "_" & Midigito

Obtendríamos 29/01/2020_M

Otra forma puede ser quitando los / , pero voy a esperar a que tu te expliques un poco mas.


He probado algo parecido, pero no ha funcionado porque tengo que, imperativamente, utilizar el formato de fecha "AAAAMMDD", que genero unos pdf que llevarán ese nombre y se han de ordenar por fecha, y no consigo meter dentro del Cstr() el format de la fecha. Quizá es algo en la sintaxis, pero he buscado mucho y no he conseguido averiguarlo.

En cualquier caso, gracias, estamos cerca.


Publicado por: Flyfish
Fecha de publicación: 29/Enero/2020 a las 09:33
Publicado originalmente por mounir mounir escribió:

Hola!

Formatea la fecha en una consulta:-

Fecha_Formateada: Format([Campofecha];"aaaammdd")&"_"&[CampoTurno]


Hola!

El problema es que necesito que el campo con el nombre completo exista, por un lado porque me lo piden, y por otro, como explicaba más arriba, lo utilizaré para generar el nombre de unos pdf que se han de archivar de cada parte de trabajo.

Si no hay más remedio, pues se pueden dar rodeos, generar consultas, generar el nombre cada vez que cree un pdf, etc. La cosa es que creía que este detalle iba a ser sencillo, y más fácil de este modo, pero no está resultando serlo.

Gracias y saludos.


Publicado por: xavi
Fecha de publicación: 29/Enero/2020 a las 09:56
O me he perdido algo o es esto:

En los eventos AfterUpdate tanto de la fecha como del turno pones este código de manera que cualquier modificación recalcule el campo.

Me!FechaTurno = Foirmat(Me!Fecha, "yyyymmdd") & "_" & Me!Turno

(habría que controlar lo nulos...)

Un saludo




-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: Flyfish
Fecha de publicación: 29/Enero/2020 a las 11:28
Publicado originalmente por xavi xavi escribió:

O me he perdido algo o es esto:

En los eventos AfterUpdate tanto de la fecha como del turno pones este código de manera que cualquier modificación recalcule el campo.

Me!FechaTurno = Foirmat(Me!Fecha, "yyyymmdd") & "_" & Me!Turno

(habría que controlar lo nulos...)


Pero esto tendría que ir en el evento del formulario de entrada de datos, no?

Lo he hecho así: 

Me!IdParte = Format(Me!Fecha, "yyyymmdd") & "_" & Me!Turno

en el evento Antes de actualizar de la hoja de propiedades del cuadro de texto de entrada del turno, y en el cuadro de texto de la fecha.

IdParte no es clave ni tiene formato raro, simplemente texto corto.

No funciona, me dice que no encuentra el objeto.

Gracias y saludos.


Publicado por: xavi
Fecha de publicación: 29/Enero/2020 a las 11:58
Me temo que estás escribiendo "a pedal" la expresión en la hoja de propiedades.

Lo que tienes que hacer es crear un procedimiento de evento (VBA) en los eventos Después de actualizar (no "antes" como tu dices) para cada uno de los controles implicados en el cálculo (Fecha y Turno)




-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: Flyfish
Fecha de publicación: 29/Enero/2020 a las 12:06
Publicado originalmente por xavi xavi escribió:

Me temo que estás escribiendo "a pedal" la expresión en la hoja de propiedades.

Lo que tienes que hacer es crear un procedimiento de evento (VBA) en los eventos Después de actualizar (no "antes" como tu dices) para cada uno de los controles implicados en el cálculo (Fecha y Turno)



Pinch Culpable!

Ok, me informo un poco más, hago unas pruebas y ya comentaré, así molesto lo menos posible.

En excel se me hace todo mucho más fácil, por lo menos de momento hasta que tenga un poco más de concepto general de cómo funciona access.

Gracias!


Publicado por: Flyfish
Fecha de publicación: 29/Enero/2020 a las 14:01
Pues efectivamente ya está. Rayos, qué fácil era.

Lo que he descubierto con todo esto es que lo interesante es trabajar con las tablas lo justo, porque no dan margen, y las fantasías hacerlas con los demás elementos, consultas, formularios, etc.

Para meter el código hay que hacerlo en modo diseño, sobre el control que se quiera. En su hoja de propiedades, en el evento deseado, elegir 

[Procedimiento de evento]

luego darle al botón con tres puntos, y se abre VBA para meter el código que necesites en un procedimiento. Muy fácil.

Se puede dar por cerrado.
Gracias a todos y saludos.



Imprimir página | Cerrar ventana