Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Iniciar sesiónIniciar sesiónCrear cuentaCrear cuenta

Access - CONVERTIR FECHA EN NÚMERO A FECHA EN LETRA

  Imprimir  
Vista:

CONVERTIR FECHA EN NÚMERO A FECHA EN LETRA

Publicado por MARTIN (6 intervenciones) el 28/02/2008 20:02:20
En Access 2003, tengo un campo de FECHA con formato Fecha Corta (ej.: 22/03/2008) y necesito programar un Módulo que coja ese campo y lo grabe o escriba en letra ("veintidós de Marzo de dos mil ocho"), para utilizarlo en un informe.
También agradecerís un módulo que convierta cantidades (con decimales o sin ellos) a texto (ej.: si tengo 1345, que obtenga "mil trescientos cuarenta y cinco".
El módulo de las fechas me es bastante urgente.
GRACIAS POR VUESTRA AYUDA.
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

RE:CONVERTIR FECHA EN NÚMERO A FECHA EN LETRA

Publicado por mi menda (1111 intervenciones) el 29/02/2008 07:50:07
Hola Martín:
Puedes utulizar esto. el códdigo comprende del año 2000 al 2099, que creo que bastará:

Private Sub cmdConvertirFecha_Click() Dim intDia As Integer, intMes As Integer, intAño As Integer, _ strDia As String, strMes As String, strAño As String intDia = Left(Me.CampoFecha, 2) intMes = Mid(Me.CampoFecha, 4, 2) intAño = Right(Me.CampoFecha, 2) ' hasta el 2099 strDia = dimeDia(intDia) strMes = dimeMes(intMes) strAño = dimeAño(intAño) CampoFechaLetra = strDia & " de " & strMes & " del " & strAño End Sub
Las siguientes funciones las puedes poner en un módulo

Function dimeDia(dameDia As Integer) As String Select Case dameDia Case 1 dimeDia = "uno" Case 2 dimeDia = "dos" Case 3 dimeDia = "tres" Case 4 dimeDia = "cuatro" Case 5 dimeDia = "cinco" Case 6 dimeDia = "seis" Case 7 dimeDia = "siete" Case 8 dimeDia = "ocho" Case 9 dimeDia = "nueve" Case 10 dimeDia = "diez" 'Case sigue tu hasta el dia 31 End Select End Function Function dimeMes(dameMes As Integer) As String Select Case dameMes Case 1 dimeMes = "enero" Case 2 dimeMes = "febrero" Case 3 dimeMes = "marzo" Case 4 dimeMes = "abril" Case 5 dimeMes = "mayo" Case 6 dimeMes = "junio" Case 7 dimeMes = "junio" Case 8 dimeMes = "agosto" Case 9 dimeMes = "septiembre" Case 10 dimeMes = "octubre" Case 11 dimeMes = "noviembre" Case 12 dimeMes = "diciembre" End Select End Function Function dimeAño(dameAño As Integer) As String Select Case dameAño Case Is < 10 If dameAño = 0 Then dimeAño = "dos mil" Else dimeAño = "dos mil " & dimeDia(dameAño) End If Case 10 dimeAño = "dos mil diez" Case 11 dimeAño = "dos mil once" Case 12 dimeAño = "dos mil doce" Case 13 dimeAño = "dos mil trece" Case 14 dimeAño = "dos mil catorce" Case 15 dimeAño = "dos mil quince" Case 16 To 19 dimeAño = "dos mil dieci" & dimeDia(Right(dameAño, 1)) Case 20 dimeAño = "dos mil veinte" Case 21 To 29 dimeAño = "dos mil veinti" & dimeDia(Right(dameAño, 1)) Case 30 dimeAño = "dos mil treinta" Case 31 To 39 dimeAño = "dos mil treinta y " & dimeDia(Right(dameAño, 1)) Case 40 dimeAño = "dos mil cuarenta" Case 41 To 49 dimeAño = "dos mil cuarenta y " & dimeDia(Right(dameAño, 1)) Case 50 dimeAño = "dos mil cincuenta" Case 51 To 59 dimeAño = "dos mil cincuenta y " & dimeDia(Right(dameAño, 1)) Case 60 dimeAño = "dos mil esenta" Case 61 To 69 dimeAño = "dos mil sesenta y" & dimeDia(Right(dameAño, 1)) Case 70 dimeAño = "dos mil setenta" Case 71 To 79 dimeAño = "dos mil setenta y " & dimeDia(Right(dameAño, 1)) Case 80 dimeAño = "dos mil ochenta" Case 81 To 89 dimeAño = "dos mil ochenta y " & dimeDia(Right(dameAño, 1)) Case 90 dimeAño = "dos mil noventa" Case 91 To 99 dimeAño = "dos mil noventa y " & dimeDia(Right(dameAño, 1)) End Select End Function
En cuanto lo de pasar cantidades a letras, en la sección código fuente de esta misma página tienes un ejemplo.

Un Saludo.
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

RE:CONVERTIR FECHA EN NÚMERO A FECHA EN LETRA

Publicado por mi menda (1111 intervenciones) el 29/02/2008 11:58:23
Hola de nuevo Martín:
Me he acordado de que ya existe una función para el nombre del mes, así que te puedes ahorrar la función dimeMes y la variable intMes, a no ser que quiereas poner el nombre del més de una forma distinta a como te lo devuelve la función de VBA.

strMes = strMes = MonthName(Month(CampoFecha))

Un Saludo
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

RE:CONVERTIR FECHA EN NÚMERO A FECHA EN LETRA

Publicado por MI MENDA (1111 intervenciones) el 07/03/2008 09:02:27
ESTO FUNCIONA. MUCHISIMAS 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

agregando de 1900 a 1999

Publicado por Azra (1 intervención) el 29/10/2014 18:59:56
gracias me ha sido de utilidad, lo use para fechas de nacimiento por lo que agrege 19...

quedo asi
Private Sub FechaNacimiento_LostFocus() Dim intDia As Integer, intMes As Integer, intAño As Integer, intAño19 As Integer, _ strDia As String, strMes As String, strAño As String intDia = Left(Me.FechaNacimiento, 2) intMes = Mid(Me.FechaNacimiento, 4, 2) intAño = Right(Me.FechaNacimiento, 2) ' hasta el 2099 intAño19 = Right(Me.FechaNacimiento, 4) ' hasta 1999 strDia = dimeDia(intDia) strMes = dimeMes(intMes) 'selección de la function en base al año If intAño19 < 2000 Then strAño = dimeAño19(intAño) Me!CampoFechaLetra = strDia & " DE " & strMes & " DE " & strAño Else strAño = dimeAño(intAño) Me!CampoFechaLetra = strDia & " DE " & strMes & " DEL " & strAño End If End Sub
y agrege una function, modificando un poco la function "dimeAño" quedando asi

Public Function dimeAño19(dameAño As Integer) As String Select Case dameAño Case Is < 10 If dameAño = 0 Then dimeAño19 = "MIL NOVECIENTOS" Else dimeAño19 = "MIL NOVECIENTOS" & dimeDia(dameAño) End If Case 10 dimeAño19 = "MIL NOVECIENTOS DIEZ" Case 11 dimeAño19 = "MIL NOVECIENTOS ONCE" Case 12 dimeAño19 = "MIL NOVECIENTOS DOCE" Case 13 dimeAño19 = "MIL NOVECIENTOS TRECE" Case 14 dimeAño19 = "MIL NOVECIENTOS CATORCE" Case 15 dimeAño19 = "MIL NOVECIENTOS QUINCE" Case 16 To 19 dimeAño19 = "MIL NOVECIENTOS DIECI" & dimeDia(Right(dameAño, 1)) Case 20 dimeAño19 = "MIL NOVECIENTOS VEINTE" Case 21 To 29 dimeAño19 = "MIL NOVECIENTOS VEINTI" & dimeDia(Right(dameAño, 1)) Case 30 dimeAño19 = "MIL NOVECIENTOS TREINTA" Case 31 To 39 dimeAño19 = "MIL NOVECIENTOS TREINTA Y " & dimeDia(Right(dameAño, 1)) Case 40 dimeAño19 = "MIL NOVECIENTOS CUARENTA" Case 41 To 49 dimeAño19 = "DOS NOVECIENTOS MIL CUARENTA Y " & dimeDia(Right(dameAño, 1)) Case 50 dimeAño19 = "MIL NOVECIENTOS CINCUENTA" Case 51 To 59 dimeAño19 = "MIL NOVECIENTOS CINCUENTA Y " & dimeDia(Right(dameAño, 1)) Case 60 dimeAño19 = "MIL NOVECIENTOS SESENTA" Case 61 To 69 dimeAño19 = "MIL NOVECIENTOS SESENTA Y" & dimeDia(Right(dameAño, 1)) Case 70 dimeAño19 = "MIL NOVECIENTOS SETENTA" Case 71 To 79 dimeAño19 = "MIL NOVECIENTOS SETENTA Y " & dimeDia(Right(dameAño, 1)) Case 80 dimeAño19 = "MIL NOVECIENTOS OCHENTA" Case 81 To 89 dimeAño19 = "MIL NOVECIENTOS OCHENTA Y " & dimeDia(Right(dameAño, 1)) Case 90 dimeAño19 = "MIL NOVECIENTOS NOVENTA" Case 91 To 99 dimeAño19 = "MIL NOVECIENTOS NOVENTA Y " & dimeDia(Right(dameAño, 1)) End Select End Function
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