Estoy teminando de diseñar una aplicación en ceess 2002 que adminstrra contablemente entiddes. Necesito saber como convierto un valor calculado a letras. Me explico : Si el valor de un pedido da $50.000.oo que un campo me almacene el texro correspondiente al vaklor calculado (CINCUENTA MIL PESOS ) Gracias. Es mi primera consulta y los felicito!. Soy un fanático de la programación...
1 respuesta
Respuesta de rodren
1
1
rodren, CERTIFICADOS 1Z0-001 Introduction to Oracle: SQL and PL/SQL
Como estas. Yo utilizo esta: Function ENLETRAS(x) Dim parte1 As Long Dim parte2 As Long Dim parte3 As Long Dim millon As String Dim millar As String parte1 = Int(x / 1000000) parte2 = Int((x - parte1 * 1000000) / 1000) parte3 = x - parte1 * 1000000 - parte2 * 1000 If parte1 = 0 Then millon = "" If parte1 = 1 Then millon = "UN MILLÓN " If parte1 > 1 Then millon = Nombre(parte1) + " MILLONES " If (parte1 - 100 * Int(parte1 / 100) > 11) And ((parte1 - 10 * Int(parte1 / 10)) = 1) Then millon = Mid(Nombre(parte1), 1, Len(Nombre(parte1)) - 1) + " MILLONES " End If If parte2 = 0 Then millar = "" If parte2 = 1 Then millar = " MIL " If parte2 > 1 Then millar = Nombre(parte2) + " MIL " If (parte2 - 100 * Int(parte2 / 100) > 11) And ((parte2 - 10 * Int(parte2 / 10)) = 1) Then millar = Mid(Nombre(parte2), 1, Len(Nombre(parte2)) - 1) + " MIL " End If ENLETRAS = millon + millar + Nombre(parte3) If Int(x) = 0 Then ENLETRAS = "CERO" End Function Function Nombre(x) Dim uni As Variant Dim dec As Variant Dim cent As Variant Dim xcent As Long Dim xdec As Long Dim xuni As Long uni = Array("", "UNO", "DOS", "TRES", "CUATRO", "CINCO", _ "seis", "siete", "ocho", "nueve", "diez", _ "once", "doce", "trece", "catorce", "quince", _ "dieciseis", "diecisiete", "dieciocho", "diecinueve", "veinte", _ "veintiuno", "veintidos", "veintitres", "veinticuatro", "veinticinco", _ "veintiseis", "veintisiete", "veintiocho", "veintinueve") dec = Array("", "", "", "TREINTA", "CUARENTA", "CINCUENTA", _ "SESENTA", "SETENTA", "OCHENTA", "NOVENTA") cent = Array("", "CIENTO", "DOSCIENTOS", "TRESCIENTOS", "CUATROCIENTOS", _ "QUINIENTOS", "SEISCIENTOS", "SETECIENTOS", "OCHOCIENTOS", "NOVECIENTOS") xcent = Int(x / 100) xdec = Int(x / 10) - 10 * xcent xuni = x - 100 * xcent - 10 * xdec If xdec > 2 Then Nombre = dec(xdec) If xuni > 0 Then Nombre = Nombre + " Y " + uni(xuni) End If Else Nombre = uni(xdec * 10 + xuni) End If If xcent > 0 Then Nombre = cent(xcent) + " " + Nombre If x = 100 Then Nombre = "CIEN" End Function Pones variable = enletras(numero) y ya te sale.
Experto te agradezco exageradamente. Sabia que alguien me ayudaría. Quisiera saber si fuese posible de que me enviaras una copia de un pequeño archivo .mdb a [email protected] que realizara este calculo. Lo revisare para conocerlo. Una vez más le agradezco mil veces.. Ruben.