¿Cómo puedo convertir los números en letras en una aplicación del programa Microsoft Access?

(=convertirnumeroseurosenletras ([monto]))
¿Si es en pesos como funciona?
Gracias por su colaboración

1 Respuesta

Respuesta
1
El tema venia de que el usuario tenía una función que se llama así: convertirnumeroseurosenletras cuyo parámetro es el monto. Si lo que quieres es la función, hay varias disponibles
Public Function EnLetras(numero As String) As String
Dim b, paso As Integer
Dim expresion, entero, deci, flag As String
flag = "N"
For paso = 1 To Len(numero)
If Mid(numero, paso, 1) = "." Then
flag = "S"
Else
If flag = "N" Then
entero = entero + Mid(numero, paso, 1) 'Extae la parte entera del numero
Else
deci = deci + Mid(numero, paso, 1) 'Extrae la parte decimal del numero
End If
End If
Next paso
If Len(deci) = 1 Then
deci = deci & "0"
End If
flag = "N"
If Val(numero) >= -999999999 And Val(numero) "5" Then
flag = "N"
expresion = expresion & "dieci"
End If
Case "2"
If Mid(entero, b + 1, 1) = "0" Then
expresion = expresion & "veinte "
flag = "S"
Else
expresion = expresion & "veinti"
flag = "N"
End If
Case "3"
If Mid(entero, b + 1, 1) = "0" Then
expresion = expresion & "treinta "
flag = "S"
Else
expresion = expresion & "treinta y "
flag = "N"
End If
Case "4"
If Mid(entero, b + 1, 1) = "0" Then
expresion = expresion & "cuarenta "
flag = "S"
Else
expresion = expresion & "cuarenta y "
flag = "N"
End If
Case "5"
If Mid(entero, b + 1, 1) = "0" Then
expresion = expresion & "cincuenta "
flag = "S"
Else
expresion = expresion & "cincuenta y "
flag = "N"
End If
Case "6"
If Mid(entero, b + 1, 1) = "0" Then
expresion = expresion & "sesenta "
flag = "S"
Else
expresion = expresion & "sesenta y "
flag = "N"
End If
Case "7"
If Mid(entero, b + 1, 1) = "0" Then
expresion = expresion & "setenta "
flag = "S"
Else
expresion = expresion & "setenta y "
flag = "N"
End If
Case "8"
If Mid(entero, b + 1, 1) = "0" Then
expresion = expresion & "ochenta "
flag = "S"
Else
expresion = expresion & "ochenta y "
flag = "N"
End If
Case "9"
If Mid(entero, b + 1, 1) = "0" Then
expresion = expresion & "noventa "
flag = "S"
Else
expresion = expresion & "noventa y "
flag = "N"
End If
End Select
Case 1, 4, 7
Select Case Mid(entero, b, 1)
Case "1"
If flag = "N" Then
If paso = 1 Then
expresion = expresion & "uno "
Else
expresion = expresion & "un "
End If
End If
Case "2"
If flag = "N" Then
expresion = expresion & "dos "
End If
Case "3"
If flag = "N" Then
expresion = expresion & "tres "
End If
Case "4"
If flag = "N" Then
expresion = expresion & "cuatro "
End If
Case "5"
If flag = "N" Then
expresion = expresion & "cinco "
End If
Case "6"
If flag = "N" Then
expresion = expresion & "seis "
End If
Case "7"
If flag = "N" Then
expresion = expresion & "siete "
End If
Case "8"
If flag = "N" Then
expresion = expresion & "ocho "
End If
Case "9"
If flag = "N" Then
expresion = expresion & "nueve "
End If
End Select
End Select
If paso = 4 Then
If Mid(entero, 6, 1) "0" Or Mid(entero, 5, 1) "0" Or Mid(entero, 4, 1) "0" Or _
(Mid(entero, 6, 1) = "0" And Mid(entero, 5, 1) = "0" And Mid(entero, 4, 1) = "0" And _
Len(entero) "" Then
If Mid(entero, 1, 1) = "-" Then 'si el numero es negativo
EnLetras = "menos " & expresion & "con " & deci ' & "/100"
Else
EnLetras = expresion & "con " & deci ' & "/100"
End If
Else
If Mid(entero, 1, 1) = "-" Then 'si el numero es negativo
EnLetras = "menos " & expresion
Else
EnLetras = expresion
End If
End If
Else 'si el numero a convertir esta fuera del rango superior e inferior
EnLetras = ""
End If
End Function
Conste que no es mía.
Saludos. Jorge

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas