Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: Redondear al mas proximo

21 views
Skip to first unread message

Antonio Leal

unread,
Apr 30, 2004, 12:27:16 PM4/30/04
to
sustituye tu codigo por el siguiente

Valor neto = [Total], este valor lo saco de un subform donde genero una suma
de los item de la factura
Impuesto = round([Total]*[IVA]/100,1) , en el campo IVA ingreso el % a
aplicar
Total Factura = round(([Total]+[Impuesto],1).

debes de Usar la FUNCION ROUND y el numero de decimales que quieres
redondear...

Saludos Aleal


"Felix" <ann...@discussions.microsoft.com> escribió en el mensaje
news:4E855A7F-028F-439A...@microsoft.com...
> Hola amigos:
>
> Quisiera ver si me pueden ayudar en esto:
>
> Tengo un form de facturas, en el mismo form hago unos calculos en cuadros
de texto independiente, estos son:
>
> Valor neto = [Total], este valor lo saco de un subform donde genero una
suma de los item de la factura
> Impuesto = [Total]*[IVA]/100 , en el campo IVA ingreso el % a aplicar
> Total Factura = ([Total]+[Impuesto].
>
> Luego el cuadro de texto [Total Factura] lo asigno a un modulo que
convierte numeros a letras. (Lo cosegui de la web de McPegasus)
>
> Mi problema es el siguiente:
>
> Cuando el resultado del impuesto me da con decimales ( $ 150.544,2), me
arroja error al momento de convertir el numero en letras. He puesto
enpropiedades del cuadro decimales 0, pero sigue el problema.
> Modificar el modulo seria casi imposible, pues no entiendo mucho o nada
VB, por eso creo que una rutina que me permetita redondear el valor del
impuesto seria lo mas rapido.
>
> Espero puedan ayudarme.........
>
>
> Saludos.......


Búho

unread,
Apr 30, 2004, 10:34:18 AM4/30/04
to
Hola Felix.
Primero, decirte que no creo que la solucion sea quitar los decimales,
salvo, que expresamente te lo pidan asi, cosa que dudo, pues no sería
fiscalmente legal.
Vamos por partes.
En VBA de access existen funciones como INT y ROUND
La primera te da la parte entera de cualqueir numero (Para tu caso sería la
solucion), tenga o no decimales. La segunda te redondea. Esas podrían servir
para tus propositos. Pero insisito, no abordes el problema desde esa
persrpectiva.

Simplemente, muestra los resultados con DOS decimales, que es lo legal.
No sé donde y por que falla la funcion de McPegasus. Estoy convencido,
viniendo de quien vien, que es de total garantía.

LLegados a este extremos, prueba esta otra que te indico a continuacion:

--

Saludos desde Valladolid
Francisco Javier García Aguado
buho...@mvp-access.com
---
http://www.mvp-access.com/
http://www.mvp-access.com/foro
http://groups.msn.com/Access2000VisualBasic/
---


"Felix" <ann...@discussions.microsoft.com> escribió en el mensaje
news:4E855A7F-028F-439A...@microsoft.com...
> Hola amigos:
>
> Quisiera ver si me pueden ayudar en esto:
>
> Tengo un form de facturas, en el mismo form hago unos calculos en cuadros
de texto independiente, estos son:
>
> Valor neto = [Total], este valor lo saco de un subform donde genero una
suma de los item de la factura
> Impuesto = [Total]*[IVA]/100 , en el campo IVA ingreso el % a aplicar
> Total Factura = ([Total]+[Impuesto].
>
> Luego el cuadro de texto [Total Factura] lo asigno a un modulo que
convierte numeros a letras. (Lo cosegui de la web de McPegasus)
>
> Mi problema es el siguiente:
>
> Cuando el resultado del impuesto me da con decimales ( $ 150.544,2), me
arroja error al momento de convertir el numero en letras. He puesto
enpropiedades del cuadro decimales 0, pero sigue el problema.
> Modificar el modulo seria casi imposible, pues no entiendo mucho o nada
VB, por eso creo que una rutina que me permetita redondear el valor del
impuesto seria lo mas rapido.
>
> Espero puedan ayudarme.........
>
>
> Saludos.......


---
Mi antivirus te dice que no tengo virus (Al menos conocidos).
Saludos del Buho.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.672 / Virus Database: 434 - Release Date: 28/04/2004


Búho

unread,
Apr 30, 2004, 10:44:55 AM4/30/04
to
Se me escapó el anterior mensaje sin ponerte la direccion de la funcion.
No obstante, creo que ya sé de donde puede venir el error.
Posiblemente la funcion de McPegasus esté preparada para ser ejecutada de
tal forma que te devuelva un valor desde codigo de vba.
Es decir. Si tu campo de texto del formulario se llama Total Factura, desde
VBA sería:
Me![Total Factura]=FuncionMcpegasus( Round(Me![Total]+Me![Impuesto]),2)
Seguro que asi funcionaria.
El tema es que creo (Intuyo, me lo imagino, me lo supongo) que tu estas
llamando a la funcion desde el origen del control..¿Estoy en lo cierto?

Simplemente, Felix...dime si estoy en lo cierto y en cuyo caso, pega
exactamente lo que tienes puesto como origen de ese control.
Por cierto, la funcion de numeros a letras que te indico yo, está en este
enlace
http://www.mvp-access.com/buho/id.asp?topico=16

--

Búho

unread,
Apr 30, 2004, 11:02:04 AM4/30/04
to
Ya he estado viendo la funcion de McPegasus.
En el modulo te lo explica perfectamente su uso, tanto si es como origen del
control, como si es desde codigo VBA. Viene perfectamente explicado.
Desde el origen del control sería en tu caso:

=Convertir([Total]+[Impuesto]);"euro";1)

¿Lo tienes puesto así?

Prueba tambien de esta otra forma:

=Convertir(Redondear([Total]+[Impuesto];2);"euro";1)

Búho

unread,
Apr 30, 2004, 4:43:44 PM4/30/04
to
Hasta aqui puedo ayudarte por este medio.
Solo queda, si quieres, enviarme el formulario, el modulo y la tabla y lo
echo un vistazo

--

"Felix" <ann...@discussions.microsoft.com> escribió en el mensaje

news:BA24BA18-A221-47F7...@microsoft.com...
> Lo tengo tal cual lo indica McPegasus y ahora lo confirmas tu.
> Probe la alternativa que me das y me sigue arrojando error "13", lo
extraño es que solo lo hace cuando el valor total tiene decimales si es
entero todo funciona bien
>
> Saludos.......

Búho

unread,
Apr 30, 2004, 6:49:09 PM4/30/04
to
Pues comprimido y al correo que ves en mi firma, 5 lineas mas abajo

--

news:262C4166-A428-45B0...@microsoft.com...
> como te lo envio ???

0 new messages