** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Números decimales en formulario y suma
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Números decimales en formulario y suma

 Responder Responder
Autor
Mensaje
Manu Marquez Ver desplegable
Nuevo
Nuevo


Unido: 28/Julio/2011
Localización: España
Estado: Sin conexión
Puntos: 21
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Manu Marquez Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Números decimales en formulario y suma
    Enviado: 11/Junio/2021 a las 12:28
Buenos dias.
A ver si me podéis ayudar. Tengo una tabla "Artículos" con varios campos numéricos que tengo con tipo de dato Doble, formato Estandar y decimales 2. Basada en esta tabla he generado una consulta "qArtículos" para que me haga los cálculos necesarios para obtener Coste, PVP y Mensualidad. Después y basada en esta consulta, genero otra "qPrecios" donde incluyo sólo los campos que necesito para mi formulario. En ambas consultas, los campos numéricos los tengo con formato Estándar y decimales 2. 
El formulario es para generar artículos compuestos, por lo que he creado 12 combos independientes para configurar el artículo compuesto basado en la consulta "qPrecios". Obtengo todos los datos que necesito, pero los campos numéricos me los devuelve sin formato y con distintos número de decimales. Y este es uno de los problemas, que no soy capaz de que me los presente a dos decimales siempre.

Y el otro problema que no soluciono es que no consigo sumar los distintos precios de cada componente para obtener el del artículo compuesto. 
Por ejemplo, en la tabla artículos tengo pantalón, camisa, chaqueta y corbata, en el formulario los introduzco uno en cada combo y obtengo los datos de Coste, PVP y Mensualidad, pero no se como sumar el artículo compuesto, el traje.

Gracias por vuestra ayuda!!
Saludos.

Arriba
emiliove Ver desplegable
Administrador
Administrador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5694
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita emiliove Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 11/Junio/2021 a las 15:39
Yo para manejar decimales uso una función hay varia por aquí, solo tienes que buscarlas yo uso esta:
Public Function Round(value As Variant, Decimals As Integer)
If Decimals >= 0 Then
Round = Int(value * Decimals + 0.5) / Decimals
End If
End Function
Para usarla: Round(NombreControl, 100) 'para dos decimales, 1000 para tres, etc.

En cuanto a sumar si en cada combos tienes en una columna el precio, es fácil, supongamos que tienes en la columna tres el precio, solo tienes que sumar:
Combo1.Column(2)+Combo2.Column(2)+Combo3.Column(2)Combo4.Column(2)
Esa es para mi la forma mas fácil pero también puedes obtener el precio con un Dlookup

Saludos.
Arriba
lunasoft Ver desplegable
Habitual
Habitual
Avatar

Unido: 04/Noviembre/2014
Localización: Graz
Estado: Sin conexión
Puntos: 100
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita lunasoft Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 11/Junio/2021 a las 15:44
Hola
Respecto al formato también puedes utilizar format(elCampoQueSea, "###00.00")

y para la suma coincido con el gran EMILIO


Juanjo Luna (Lunasoft)
Microsoft MVP 2023

----------------

https://www.luna-soft.es/

https://www.youtube.com/ACCESSoTOTAL

https://github.com/ACCESSoTOTAL
Arriba
Manu Marquez Ver desplegable
Nuevo
Nuevo


Unido: 28/Julio/2011
Localización: España
Estado: Sin conexión
Puntos: 21
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Manu Marquez Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 14/Junio/2021 a las 15:59
Buenas tardes.

Tendría que haber comentado que no controlo VB, lo que hago en access es directamente en las propiedades del control. Me obligaré a estudiar VB.
En cuanto a la suma propuesta por Emilio ya lo había intentado con los nombre de los campos. Le intento con las columnas del Combo y el resultado es el mismo, aparecen un resultado en forma de texto que lo que hace es unirme las distintas cantidades a sumar (118260,1172586,77,45681...)
Y en cuanto al formato propuesto por Lunasoft, introducirlo se me cambia automáticamente a 0.000.
Sigo pensando y buscando hasta que aprenda!!!
Y por supuesto, gracias por vuestras respuestas.
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14023
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 14/Junio/2021 a las 16:13
Manu,
Si no pones lo que haces no podremos corregirte sobre tus 'errores'. Aquí de adivinos nada, hace muuuuucho tiempo un tal Emilio tenía una bola de cristal, pero tampoco creas que furulaba demasiado.  Big smile

Ahora en serio, por tus intentos, porque con la mera enumeración no vamos a ningún sitio ...
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
Manu Marquez Ver desplegable
Nuevo
Nuevo


Unido: 28/Julio/2011
Localización: España
Estado: Sin conexión
Puntos: 21
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Manu Marquez Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 14/Junio/2021 a las 17:41
Buenas tardes Mihura.
Trato de explicar lo que quiero hacer. Partiendo de una tabla "Artículos" con distintos registros genéricos (servicio, nodos, sensores aire, sensores tierra, etc), trato de hacer un configurador de artículos compuestos y que realmente es el motivo del formulario (cuando pase este curso comienzo el del informe). He generado una primera consulta de selección "qArtículos" donde hago los cálculos según las condiciones (descuentos, márgenes, etc) y basada en esta primera consulta he creado otra consulta de selección "qPrecios" que es de la que se alimenta el formulario.
Como no tengo necesidad de guardar nada, es un formulario consultivo, lo he creado con 12 combos independientes con las columnas "Referencia" (es el combo propiamente dicho), Descripción (columna 1), Coste, (columna 2), PVP (columna 3) y Mes (columna 4).
Al seleccionar en el combo 1 la referencia "4", ya me indica la descripción, el coste, PVP y Mes de ese artículo, y así sucesivamente en los 11 combos restantes (no tiene por qué cumplimentarse todos). Y lo que no soy capaz de solucionar es que sólo me aparezcan cantidades con 2 decimales y que en un cuadro de texto final me sume los importes de los distintos artículos que componen el compuesto.


Adjunto imagen para mayor claridad.
Graciasss!!

Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14023
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 14/Junio/2021 a las 19:11
Sigues sin poner como lo haces ...
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
Manu Marquez Ver desplegable
Nuevo
Nuevo


Unido: 28/Julio/2011
Localización: España
Estado: Sin conexión
Puntos: 21
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Manu Marquez Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 15/Junio/2021 a las 10:08
Buenos dias Jesús
Supongo que lo que necesitarás para ver mis errores será la construcción de las consultas.
La primera "qArtículos" es:
SELECT Artículos.Id_Artículo, Artículos.Id_Proveedor, Artículos.Referencia, Artículos.Descripción, Artículos.Amortización, Artículos.PrecioTarifa, Artículos.Descuento, Artículos.MargeniG4, [PrecioTarifa]-([PrecioTarifa]*[Descuento]) AS Coste, ([PrecioTarifa]-([PrecioTarifa]*[Descuento]))+(([PrecioTarifa]-([PrecioTarifa]*[Descuento]))*[MargeniG4]) AS PVP, (([PrecioTarifa]-([PrecioTarifa]*[Descuento]))+(([PrecioTarifa]-([PrecioTarifa]*[Descuento]))*[MargeniG4]))/[Amortización] AS Mes
FROM Artículos;

La segunda consulta, "qPrecios" es:
SELECT qArtículos.Referencia, qArtículos.Descripción, qArtículos.Coste, qArtículos.PVP, qArtículos.Mes
FROM qArtículos;
 Y desde esta consulta es de donde saco los datos para los distintos combos del formulario:
Origen de la fila: qPrecios;
Tipo de origen de la fila: Tabla/Consulta;
Columna dependiente: 1

Espero ser ahora más explícito.
Gracias por tu tiempo!

Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14023
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 15/Junio/2021 a las 11:16
Por partes, como diría el amigo Jack.

Para presentar los resultados con 'formato' en los combos tienes dos maneras:
- aplicas formato en la consulta, cosa que no te recomiendo en lo más mínimo, te traerá problemas en el futuro:
                  ..... , Format([PrecioTarifa]-([PrecioTarifa]*[Descuento]), "#.##0,00")

- en vez de aplicar la consulta al combo, creas una SQL en el origen de datos del combo que coja los datos de esa consulta y les das formato:
                  ......, Format(Coste, "#.##0,00")

- también podrías usar subformularios en vez de combos, en estos los campos si que tienen formato propio, ... a mi no me gusta usarlos


El siguiente paso es sumar los resultados:
- si 'tiras' de un campo de un combo, lo primero tendrás que convertirlo a numero (con un Cdbl o CCur) ya que las columnas del combo son textos y después sumarlos
- así que, yo usaría otra consulta para realizar los cálculos


Pero, consejo de viejo, paso a paso. Primero cuadra formatos y una vez que los tengas vete a por las sumas.





Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable