Access - Convertir número a letra

   
Vista:

Convertir número a letra

Publicado por Sergio (16 intervenciones) el 18/04/2015 19:06:35
Hola. Existe alguna función que convierta un número a letras, por ej: 1.000 y que figura un mil. Gracias.
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

Convertir número a letra

Publicado por Emilio (221 intervenciones) el 20/04/2015 17:59:36
Hola Sergio

Si pones en google de numero a letra vba access, de seguro te salen varias funciones.

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
Imágen de perfil de Norberto

Convertir número a letra

Publicado por Norberto (432 intervenciones) el 21/04/2015 16:10:37
Hola:

Yo en su día encontré ésta:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Public Function Num2Text(ByVal value As Double) As String
    Select Case value
        Case 0: Num2Text = "CERO"
        Case 1: Num2Text = "UNO"
        Case 2: Num2Text = "DOS"
        Case 3: Num2Text = "TRES"
        Case 4: Num2Text = "CUATRO"
        Case 5: Num2Text = "CINCO"
        Case 6: Num2Text = "SEIS"
        Case 7: Num2Text = "SIETE"
        Case 8: Num2Text = "OCHO"
        Case 9: Num2Text = "NUEVE"
        Case 10: Num2Text = "DIEZ"
        Case 11: Num2Text = "ONCE"
        Case 12: Num2Text = "DOCE"
        Case 13: Num2Text = "TRECE"
        Case 14: Num2Text = "CATORCE"
        Case 15: Num2Text = "QUINCE"
        Case Is < 20: Num2Text = "DIECI" & Num2Text(value - 10)
        Case 20: Num2Text = "VEINTE"
        Case Is < 30: Num2Text = "VEINTI" & Num2Text(value - 20)
        Case 30: Num2Text = "TREINTA"
        Case 40: Num2Text = "CUARENTA"
        Case 50: Num2Text = "CINCUENTA"
        Case 60: Num2Text = "SESENTA"
        Case 70: Num2Text = "SETENTA"
        Case 80: Num2Text = "OCHENTA"
        Case 90: Num2Text = "NOVENTA"
        Case Is < 100: Num2Text = Num2Text(Int(value \ 10) * 10) & " Y " & Num2Text(value Mod 10)
        Case 100: Num2Text = "CIEN"
        Case Is < 200: Num2Text = "CIENTO " & Num2Text(value - 100)
        Case 200, 300, 400, 600, 800: Num2Text = Num2Text(Int(value \ 100)) & "CIENTOS"
        Case 500: Num2Text = "QUINIENTOS"
        Case 700: Num2Text = "SETECIENTOS"
        Case 900: Num2Text = "NOVECIENTOS"
        Case Is < 1000: Num2Text = Num2Text(Int(value \ 100) * 100) & " " & Num2Text(value Mod 100)
        Case 1000: Num2Text = "MIL"
        Case Is < 2000: Num2Text = "MIL " & Num2Text(value Mod 1000)
        Case Is < 1000000: Num2Text = Num2Text(Int(value \ 1000)) & " MIL"
            If value Mod 1000 Then Num2Text = Num2Text & " " & Num2Text(value Mod 1000)
        Case 1000000: Num2Text = "UN MILLON"
        Case Is < 2000000: Num2Text = "UN MILLON " & Num2Text(value Mod 1000000)
        Case Is < 1000000000000#
            Num2Text = Num2Text(Int(value / 1000000)) & " MILLONES "
            If (value - Int(value / 1000000) * 1000000) Then Num2Text = Trim(Num2Text) & " " & Num2Text(value - Int(value / 1000000) * 1000000)
        Case 1000000000000#: Num2Text = "UN BILLON"
        Case Is < 2000000000000#: Num2Text = "UN BILLON " & Num2Text(value - Int(value / 1000000000000#) * 1000000000000#)
        Case Else
            Num2Text = Num2Text(Int(value / 1000000000000#)) & " BILLONES"
            If (value - Int(value / 1000000000000#) * 1000000000000#) Then Num2Text = Num2Text & " " & Num2Text(value - Int(value / 1000000000000#) * 1000000000000#)
    End Select
 
End Function

Y a partir de ella hice otra para convertir a ordinales, esos eternos olvidados por los periodistas. Si te interesa me la pides.

Saludos,

Norberto
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 Samuel

Convertir número a letra

Publicado por Samuel (7 intervenciones) el 21/04/2015 18:06:35
Hola Sergio, esta es la función que yo utilizo, tienes que pegar el siguiente código en un nuevo módulo
----------------------------------------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Function PesosMN(tyCantidad As Currency) As String
Dim lyCantidad As Currency, lyCentavos As Currency, lnDigito As Byte, lnPrimerDigito As Byte, lnSegundoDigito As Byte, lnTercerDigito As Byte, lcBloque As String, lnNumeroBloques As Byte, lnBloqueCero
Dim laUnidades As Variant, laDecenas As Variant, laCentenas As Variant, i As Variant 'Si esta como Option Explicit
tyCantidad = Round(tyCantidad, 2)
lyCantidad = Int(tyCantidad)
lyCentavos = (tyCantidad - lyCantidad) * 100
laUnidades = Array("Un", "Dos", "Tres", "Cuatro", "Cinco", "Seis", "Siete", "Ocho", "Nueve", "Diez", "Once", "Doce", "Trece", "Catorce", "Quince", "Dieciseís", "Diecisiete", "Dieciocho", "Diecinueve", "Veinte", "Veintiún", "Veintidós", "Veintitrés", "Veinticuatro", "Veinticinco", "Veintiseis", "Veintisiete", "Veintiocho", "Veintinueve")
laDecenas = Array("Diez", "Veinte", "Treinta", "Cuarenta", "Cincuenta", "Sesenta", "Setenta", "Ochenta", "Noventa")
laCentenas = Array("Ciento", "Doscientos", "Trescientos", "Cuatrocientos", "Quinientos", "Seiscientos", "Setecientos", "Ochocientos", "Novecientos")
lnNumeroBloques = 1
Do
lnPrimerDigito = 0
lnSegundoDigito = 0
lnTercerDigito = 0
lcBloque = ""
lnBloqueCero = 0
For i = 1 To 3
lnDigito = lyCantidad Mod 10
If lnDigito <> 0 Then
Select Case i
Case 1
lcBloque = " " & laUnidades(lnDigito - 1)
lnPrimerDigito = lnDigito
Case 2
If lnDigito <= 2 Then
lcBloque = " " & laUnidades((lnDigito * 10) + lnPrimerDigito - 1)
Else
lcBloque = " " & laDecenas(lnDigito - 1) & IIf(lnPrimerDigito <> 0, " y", Null) & lcBloque
End If
lnSegundoDigito = lnDigito
Case 3
lcBloque = " " & IIf(lnDigito = 1 And lnPrimerDigito = 0 And lnSegundoDigito = 0, "CIEN", laCentenas(lnDigito - 1)) & lcBloque
lnTercerDigito = lnDigito
End Select
Else
lnBloqueCero = lnBloqueCero + 1
End If
lyCantidad = Int(lyCantidad / 10)
If lyCantidad = 0 Then
Exit For
End If
Next i
Select Case lnNumeroBloques
Case 1
PesosMN = lcBloque
Case 2
PesosMN = lcBloque & IIf(lnBloqueCero = 3, Null, " mil") & PesosMN
Case 3
PesosMN = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, " millón", " millones") & PesosMN
End Select
lnNumeroBloques = lnNumeroBloques + 1
Loop Until lyCantidad = 0
PesosMN = " " & PesosMN & IIf(tyCantidad > 1, " pesos ", " peso ") & Format(Str(lyCentavos), "00") & "/100 M.N."
End Function
----------------------------------------------------------------
puedes editar esta parte para que ponga lo que quieras
PesosMN = " " & PesosMN & IIf(tyCantidad > 1, " pesos ", " peso ") & Format(Str(lyCentavos), "00") & "/100 M.N."

Y después llamarás la función en campo>propiedades>origen de registro, con el siguiente texto
PesosMN([Nombre del Campo])
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Convertir número a letra

Publicado por Sergio (16 intervenciones) el 23/04/2015 00:42:19
La verdad que es complicado. Les agradezco de verdad. Muchas 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
Imágen de perfil de Felix

Convertir número a letra

Publicado por Felix (72 intervenciones) el 24/04/2015 23:15:18
Si me escribes tu correo te envio la aplicacion
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 JUAN MIGUEL

Convertir número a letra

Publicado por JUAN MIGUEL (37 intervenciones) el 14/05/2015 05:03:25
hola amigo me funciona excelente gracias. tengo una curiosidad que tengo que hacer para que un numero me salga asi:

un millon docientos treinta y cuatro mil pesos CON setenta y tres centavos.................. Nesecito poner el CON antes de los centavos muchas gracias y si se pudiera ler tambien los centavos
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 Samuel

Convertir número a letra

Publicado por Samuel (7 intervenciones) el 02/06/2015 20:38:04
Amigo, disculpa por responder hasta ahora, pero había estado ocupado con unas cosas del trabajo

¿Necesitas los centavos con letra 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 JUAN MIGUEL

Convertir número a letra

Publicado por JUAN MIGUEL (37 intervenciones) el 02/06/2015 20:48:24
SI AMIGO agradecería su colaboracion
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 Samuel

Convertir número a letra

Publicado por Samuel (7 intervenciones) el 02/06/2015 21:44:46
Amigo, para no complicarte tanto solo modifica esta línea:

PesosMN = " " & PesosMN & IIf(tyCantidad > 1, " pesos ", " peso ") & Format(Str(lyCentavos), "00") & "/100 M.N."

por esta:

PesosMN = " " & PesosMN & IIf(tyCantidad > 1, " pesos ", " peso ") & "con " & IIf(lyCentavos = 0, " cero ", laDecenas(Left(lyCentavos, 1) - 1) & IIf(lnPrimerDigito <> 0, " y ", Null) & laUnidades(Right(lyCentavos, 1) - 1)) & " Centavos"

Avísame si tienes problemas
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

Convertir número a letra

Publicado por Jose Muñoz jose.munoz.ariza@gmail.com (1 intervención) el 03/10/2015 01:38:30
Buenas disculpen, estoy utilizando este codigo, pero donde deben de salir los valores en letras, me registra el siguiente error: #¿Nombre?
si me podrian colaborar,

De antemano 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
Imágen de perfil de JUAN MIGUEL

Convertir número a letra

Publicado por JUAN MIGUEL (37 intervenciones) el 05/10/2015 02:33:36
hola jose hacee dias estuve trabajando con estte codigo y me funciona perfecto le agradezco al amigo de arriba por ayudarme ....... en donde se presenta su error y como lo inserto 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