Access - Ayuda (importe con letra)

 
Vista:

Ayuda (importe con letra)

Publicado por Eduardo Romero (7 intervenciones) el 19/07/2005 16:35:59


Hola que tal.

Estuve diseñando una factura en el access y ya la tengo casi toda, solo me falta poder obtener la cantidad total de la factura en letra, ¿existe alguna funcion en el access que permita hacer eso?

Yo estuve tratando de buscasr una pero no encontre, si alguien sabe como sacarla se los agradecere, y si no, si alguien fuera tan amable de decirme mas o menos como hacer una.

Muchas gracias por su atencion
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:Ayuda (importe con letra)

Publicado por 2pl (773 intervenciones) el 19/07/2005 20:27:03
Copiate esta, no se si utilizas euros u otra moneda, adaptala.

Function EurosLetras(Numero As Currency) As String

Static Grupos(5) As String
Dim NumeroEnLetras As String, NumChar As String, DecChar As String, Contador As Integer
Dim Unidad As String, Decena As String, Centena As String
Dim Uni2Letras As String, Dec2Letras As String, Cen2Letras As String
Dim Conector As String

NumeroEnLetras = ""
NumChar = Right("000000000000000" & Trim(Str(Int(Numero))), 15)
DecChar = Left(Trim(Str(Numero - Int(Numero)) & "000"), 3)

For Contador = 5 To 1 Step -1
Grupos(Contador) = Mid(NumChar, (5 - Contador) * 3 + 1, 3)
Next

For Contador = 5 To 1 Step -1
Unidad = Mid(Grupos(Contador), 3, 1)
Decena = Mid(Grupos(Contador), 2, 1)
Centena = Mid(Grupos(Contador), 1, 1)

Select Case Unidad
Case "0"
Uni2Letras = IIf(Numero = 0 And Contador = 1, "cero", "")
Case "1"
Uni2Letras = IIf(Decena = "1", "once", IIf(Grupos(Contador) = "001" And (Contador = 2 Or Contador = 4), "", "un "))
Case "2"
Uni2Letras = IIf(Decena = "1", "doce ", "dos ")
Case "3"
Uni2Letras = IIf(Decena = "1", "trece ", "tres ")
Case "4"
Uni2Letras = IIf(Decena = "1", "catorce ", "cuatro ")
Case "5"
Uni2Letras = IIf(Decena = "1", "quince ", "cinco ")
Case "6"
Uni2Letras = IIf(Decena = "1", "dieciseis ", "seis ")
Case "7"
Uni2Letras = IIf(Decena = "1", "diecisiete ", "siete ")
Case "8"
Uni2Letras = IIf(Decena = "1", "dieciocho ", "ocho ")
Case "9"
Uni2Letras = IIf(Decena = "1", "diecinueve ", "nueve ")
End Select

Select Case Decena
Case "0"
Dec2Letras = ""
Case "1"
Dec2Letras = IIf(Unidad = "0", "diez ", "")
Case "2"
Dec2Letras = IIf(Unidad = "0", "veinte ", "veinti")
Case "3"
Dec2Letras = "treinta " & IIf(Unidad <> "0", "y ", "")
Case "4"
Dec2Letras = "cuarenta " & IIf(Unidad <> "0", "y ", "")
Case "5"
Dec2Letras = "cincuenta " & IIf(Unidad <> "0", "y ", "")
Case "6"
Dec2Letras = "sesenta " & IIf(Unidad <> "0", "y ", "")
Case "7"
Dec2Letras = "setenta " & IIf(Unidad <> "0", "y ", "")
Case "8"
Dec2Letras = "ochenta " & IIf(Unidad <> "0", "y ", "")
Case "9"
Dec2Letras = "noventa " & IIf(Unidad <> "0", "y ", "")
End Select

Select Case Centena
Case "0"
Cen2Letras = ""
Case "1"
Cen2Letras = IIf(Decena & Unidad = "00", "cien ", "ciento ")
Case "2"
Cen2Letras = "doscientos "
Case "3"
Cen2Letras = "trescientos "
Case "4"
Cen2Letras = "cuatrocientos "
Case "5"
Cen2Letras = "quinientos "
Case "6"
Cen2Letras = "seiscientos "
Case "7"
Cen2Letras = "setecientos "
Case "8"
Cen2Letras = "ochocientos "
Case "9"
Cen2Letras = "novecientos "
End Select

Select Case Contador
Case 1
Conector = ""
Case 2
Conector = IIf(Grupos(2) > "000", "mil ", "")
Case 3
Conector = IIf(Grupos(3) > "000" Or Grupos(4) > "000", IIf(Grupos(3) = "001", "millón ", "millones "), "")
Case 4
Conector = IIf(Grupos(4) > "000", "mil ", "")
Case 5
Conector = IIf(Grupos(5) > "000", IIf(Grupos(5) = "001", "billón ", "billones "), "")
End Select

NumeroEnLetras = NumeroEnLetras & (Cen2Letras & Dec2Letras & Uni2Letras & Conector)

Next Contador

Unidad = Mid(DecChar, 3, 1)
Decena = Mid(DecChar, 2, 1)
Uni2Letras = ""
Dec2Letras = ""

Select Case Unidad
Case "0"
Uni2Letras = IIf(Decena = "0", "cero", "")
Case "1"
Uni2Letras = IIf(Decena = "1", "once", IIf(Grupos(Contador) = "001" And (Contador = 2 Or Contador = 4), "", "un "))
Case "2"
Uni2Letras = IIf(Decena = "1", "doce ", "dos ")
Case "3"
Uni2Letras = IIf(Decena = "1", "trece ", "tres ")
Case "4"
Uni2Letras = IIf(Decena = "1", "catorce ", "cuatro ")
Case "5"
Uni2Letras = IIf(Decena = "1", "quince ", "cinco ")
Case "6"
Uni2Letras = IIf(Decena = "1", "dieciseis ", "seis ")
Case "7"
Uni2Letras = IIf(Decena = "1", "diecisiete ", "siete ")
Case "8"
Uni2Letras = IIf(Decena = "1", "dieciocho ", "ocho ")
Case "9"
Uni2Letras = IIf(Decena = "1", "diecinueve ", "nueve ")
End Select

Select Case Decena
Case "0"
Dec2Letras = ""
Case "1"
Dec2Letras = IIf(Unidad = "0", "diez ", "")
Case "2"
Dec2Letras = IIf(Unidad = "0", "veinte ", "veinti")
Case "3"
Dec2Letras = "treinta " & IIf(Unidad <> "0", "y ", "")
Case "4"
Dec2Letras = "cuarenta " & IIf(Unidad <> "0", "y ", "")
Case "5"
Dec2Letras = "cincuenta " & IIf(Unidad <> "0", "y ", "")
Case "6"
Dec2Letras = "sesenta " & IIf(Unidad <> "0", "y ", "")
Case "7"
Dec2Letras = "setenta " & IIf(Unidad <> "0", "y ", "")
Case "8"
Dec2Letras = "ochenta " & IIf(Unidad <> "0", "y ", "")
Case "9"
Dec2Letras = "noventa " & IIf(Unidad <> "0", "y ", "")
End Select

If (Dec2Letras & Uni2Letras) = "cero" Then
NumeroEnLetras = NumeroEnLetras
Else
NumeroEnLetras = NumeroEnLetras & "Euros con " & Dec2Letras & Uni2Letras & "céntimos"
End If

EurosLetras = NumeroEnLetras

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

RE:Ayuda (importe con letra)

Publicado por Eduardo Romero (7 intervenciones) el 19/07/2005 20:41:03
Gracias por la ayuda, nomas la adapto para pesos , soy de mexico, muchas gracias otra vez, hasta luego.

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