¿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
1
Anónimo
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