La suma monetaria se redondea access

Tengo ele siguiente problema, son muy inexperto en esto de access pero he aprendido poco a poco por cursos en you tube.

He podido crear una base de datos para mi pequeño negocio y cuando puse un formulario con las descripción de los ingresos .. Esta al dar un total me redondea la suma.

Para entender un poco mi base, tengo que poner le nombre del cliente con su ID y eso me la relaciona de un base de datos de clientes. Luego hay un subformulario que llame subformulario de ingresos, allí esta cantidad despachada, precio y nombre del producto (también relacionado de una base de inventario), pero al dar la sumatoria de todos los subtotales me lo redondea. A groso modo ustedes podrían decirme como puedo hacer para que me de los datos correctos. Un cliente compro 2 productos de 7.25 y debe ser 14.50 pero en el total se suma como 15.00 que puedo hacer a mi entender con poco conocimientos.

Gracias. Cualquiera duda escribir.

1 respuesta

Respuesta
3

Por lo que comentas, el problema parece o bien de definición incorrecta del campo en la tabla o bien de darle un formato incorrecto.

Veamos, en la tabla que usas como base para el subformulario, ¿tienes un campo para el importe total? Si es así, ¿Lo tienes definido como "moneda","número doble","número simple" o "número decimal"? Esos son los formatos de número que admiten decimales, si lo tienes como ·Entero" o "entero largo", no te deja manejar decimales.

Hola. Gracias por la info

Respondiendo a su petición el cuadro de subformulario tiene

Id. Detalle.igreso es autonumérico

Id. Ingreso es numero entero largo (se arrastra solo del formulario de ingresos a través de una relación)

Cantidad despachada es numero entero largo

Precio es moneda 2 decimales

Producto (este se relaciona con otra tabla de productos)

subtotal. Ingresos este es TAMAÑO DE CAMPO doble y formato moneda 2 decimales, ¿pero en tipo de dato sale NUMERO?

¿Esta info le sirve a ud?

Pues por lo que comentas, no te debería redondear, porque el campo subtotal al ser "Doble", admite decimales. Quizás sea por cómo haces el cálculo, si usas variables y las definiste como Integer o Long, pero eso no lo sé.

Mira, he preparado un mini-ejemplo, uno tal y como lo tienes tu (Tabla1) y otro con el subtotal definido como moneda (Tabla2), igual que tienes el campo Precio. En mi opinión es mejor hacerlo así (si existe un tipo de dato para valores monetarios, úsalo) y en ambos casos no redondea.

Para que veas lo del redondeo, Tabla3 es una copia exacta de Tabla1, pero en el formulario hago los cálculos a través de variables, definiendo el total como Long (de forma incorrecta) y puedes ver como ahí sí redondea.

http://www.filebig.net/files/zRMYpwfXRD 

HOLA. Amigo he podido leer todo y es como ud dice, no le se andar mucho al VBA y note de todas formas que sale LONG, su tabla es bastante sencilla, le subiré mi documento que he hice con algunos ejemplos.

Yo tuve que poner una etiqueta que me sumara todos los subtotales (del subformulario de detalles de ingreso) y luego me la transfiriera a otro para subirlo a un total de otra tabla (tabla de ingresos). Mire en el pie de formulario, porque ahí esta. Y esa es la que me general el conflicto. Puede verle no se como cambiar VBA porque no se programar jajaj ud disculpe, he hecho lo que puedo a mi nivel.

Pero ud esta dando con el problema, ahora no se como arreglar de long a otra cosa

http://www.filebig.net/files/YyuCEPBExq 

El archivo que mandas está dañado y no puedo abrir los formularios.

De todas formas, cambiar el LONG por otro valor es tan sencillo como cambiar donde está:

Dim nombreVariable AS Long

por

Dim nombreVariable AS Double   'Si lo quieres Doble

o  

Dim nombreVariable AS Currency   'Si lo quieres moneda

Y en las tablas, en vista diseño, cambiar "Entero largo" por "Doble" o "Moneda"

Se la he cambiado y me ha dado error no me suma ahora.

He subido el link de nuevo a ver si lo puede ver cuando tenga un tiempito

https://www.filebig.net/files/YmdkL6hHp5

Solo tenías que hacer dos cmabios:

1º/ en la tabla "DETALLES DE INGRESOS" cambiar el subtotal_ingresos a Moneda en vez de Número

2º/ en el formulario "Subformulario DETALLES DE INGRESOS" cambiar el Dim vResult As Long por Dim vResult As Currency.

No tenía ninguna ciencia con lo que te había dicho...

http://www.filebig.net/files/34WQe3jE5r 

Hermano eres un crack! Lo he hecho yo mismo y pude, muchas gracias amigo. Yo de verdad estoy muy agradecido con su apoyo. Haz dado con el punto medular del asunto. Fue muy fácil con el 1 y 2 pasos.

Aprovechándome de su buena voluntad, ¿cómo hago para que el total del subformulario de detalles de ingresos lleve la info al Total de la tabla de ingresos que use cosa que dice al recibir el enfoque pero habrá una mejor forma?

Ojala pudiera darte más valoraciones.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas