** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Convertir fecha a cadena de texto
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoConvertir fecha a cadena de texto

 Responder Responder
Autor
Mensaje
Flyfish Ver desplegable
Nuevo
Nuevo


Unido: 29/Enero/2020
Localización: España
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje Tema: Convertir fecha a cadena de texto
    Enviado: 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.
Arriba
VIMIPAS Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Enero/2006
Localización: ESPAÑA
Estado: Sin conexión
Puntos: 5462
Enlace directo a este mensaje Enviado: 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
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 6479
Enlace directo a este mensaje Enviado: 29/Enero/2020 a las 09:16
Hola!

Formatea la fecha en una consulta:-

Fecha_Formateada: Format([Campofecha];"aaaammdd")&"_"&[CampoTurno]
Un Saludo.
Arriba
VIMIPAS Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Enero/2006
Localización: ESPAÑA
Estado: Sin conexión
Puntos: 5462
Enlace directo a este mensaje Enviado: 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
Arriba
Flyfish Ver desplegable
Nuevo
Nuevo


Unido: 29/Enero/2020
Localización: España
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje Enviado: 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.
Arriba
Flyfish Ver desplegable
Nuevo
Nuevo


Unido: 29/Enero/2020
Localización: España
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje Enviado: 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.


Editado por Flyfish - 29/Enero/2020 a las 09:26
Arriba
Flyfish Ver desplegable
Nuevo
Nuevo


Unido: 29/Enero/2020
Localización: España
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje Enviado: 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.
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14720
Enlace directo a este mensaje Enviado: 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

Mi web
Arriba
Flyfish Ver desplegable
Nuevo
Nuevo


Unido: 29/Enero/2020
Localización: España
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje Enviado: 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.
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14720
Enlace directo a este mensaje Enviado: 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

Mi web
Arriba
Flyfish Ver desplegable
Nuevo
Nuevo


Unido: 29/Enero/2020
Localización: España
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje Enviado: 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!
Arriba
Flyfish Ver desplegable
Nuevo
Nuevo


Unido: 29/Enero/2020
Localización: España
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje Enviado: 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.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable