** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Error en suma de datos en pie de formulario
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoError en suma de datos en pie de formulario

 Responder Responder
Autor
Mensaje
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
Enlace directo a este mensaje Tema: Error en suma de datos en pie de formulario
    Enviado: 19/Octubre/2020 a las 09:05
Hola a tod@s:
Al hacer la suma de datos en pie de formulario ,en un cuadro de texto pongo: 
TextoX:=Suma([Cantidad]*[Precio]) y me da Error
Creo que pueda ser un problema estructural pero no sé como resolverlo. Explico como está montado para una mejor comprensión.
Hay tres tablas:
"tblAfilacion"  con datos del cliente y con "IdAfiliación" como clave principal y (Autonumérico)
"tblProductosAC" con datos del producto y con "IdProductoAC" como clave principal y (numero) 
"tblAux" con datos varios y con "IdAfiliacion" e "IdProducto" sin clave principal y (numero)

Creo la consulta "qryFacturaAC" relacionando las tres tablas y la cargo con datos reltivos al cliente; DNI, Nombre etc y con datos relativos al producto; cantidad y precio.
Para introducir datos creo el formulario "frmAfiliacion" cuyo origen de registro es la tabla "tblAfiliacion" donde pongo los datos relativos al cliente. Dentro de este formulario introduzco el subformulario "SubfrmAfiliacionProducto" cuyo origen de registro el la consulta "qryFacturaAC" Aquí van los campos relativos al producto. Dentro del subfomulario creo un combo donde en el origen de fila aparecen los campos procedentes de la tabla "tblProductos" como nombre, cantidad y precio. El origen de control del combo es "IdProducto"
Por último, para hacer la factura creo el formulario "frmFacturaAC"cuyo origen de registro es la consulta "qryFacturaAC" . Los datos campos que incluyo son:
En el encabezamiento del formulario los relativos al cliente; DNI, Nombre etc, en el detalle los reltivos al producto; cantidad y precio y en el pie creo textos independiente donde calculo los totales por cliente mediante la función suma, es decir que pongo:
TextoX:= Suma([Cantidad] * [Precio])
y me sale Error.
Llevo muchas horas tratando de salir de este impá pero no consigo resolverlo. Necesito ayuda
Muchas gracias
jj
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14025
Enlace directo a este mensaje Enviado: 19/Octubre/2020 a las 09:10
¿Qué error te sale? ... prueba a proteger los campos Cantidad y precio con Siinm Nz para evitar los nulos.

Sin analizar las consultas puestas, ... yo prefiero calcular el campo con una consulta y no usar una suma 'arrastrada'.



Edito: ponia Siinm para evitar los nulos, es Nz 


Editado por Mihura - 19/Octubre/2020 a las 11:39
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
Enlace directo a este mensaje Enviado: 19/Octubre/2020 a las 11:19
 El error es en propio campo del formulario donde intento hacer la suma
#Error
Los campos ya los tengo calculados en la consulta pero en el formulario hago la suma total de todos los registros
Concepto   Cantidad     Precio    Total
Concepto1      2              3          6
Concepto2       4              5        20
Total                                         26
El total parcial lo calculo en la consulta y el total (26) lo intento hacer en el campo del pie del formulario
Lo he intentado con SIim pero da igual, además de que ya se conseguridad que no tienen valor cero.
En la consulta uso el Nz
jj
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14025
Enlace directo a este mensaje Enviado: 19/Octubre/2020 a las 11:34
=Suma(Nz(Cantidad, 0) * Nz(Precio, 0))
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
Enlace directo a este mensaje Enviado: 19/Octubre/2020 a las 16:10
Hola Mihura
Ya lo había intentado, lo vuelvo a hacer y sigue igual.
Con toda humildad, a mi me parece que podría ser que el formulario de la factura esté alimentado por una consulta en lugar de una tabla pero si arreglo eso, se desarregla la forma de alimentar con el combo.
Como digo al principio me parece un problema estructural. Repito con toda humildad, solo quiero dar alguna pista porque en otra aplicación así me ha ocurrido
Gracias Mihura
jj
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14025
Enlace directo a este mensaje Enviado: 19/Octubre/2020 a las 16:36
Siendo un formulario continuo debería dar igual que lo alimentara una tabla o una consulta.

La verdad es que yo no los uso, así que poco más te puedo decir.

Podrías probar a poner una consulta de dominio DSum al campo que te falla.


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

Access Aplicaciones
Tecsys.es
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
Enlace directo a este mensaje Enviado: 19/Octubre/2020 a las 16:39
¿Cómo lo de la consulta de dominio DSum?
jj
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
Enlace directo a este mensaje Enviado: 19/Octubre/2020 a las 16:41
Ah¡ si pero en la consulta no me aparece la fila donde la puedo aplicar
jj
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14025
Enlace directo a este mensaje Enviado: 19/Octubre/2020 a las 16:53
En el campo del pie del formulario, algo así como:

= Dsum("Precio*Cantidad", "Consulta", "Condicion")

Y si no con un recordset

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

Access Aplicaciones
Tecsys.es
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1512
Enlace directo a este mensaje Enviado: 19/Octubre/2020 a las 20:42
Si he entendido bien, hay un formulario con los datos de la factura, y un subformulario donde aparecen las cantidades y precios. Si es así, la suma la debes colocar en el pie del subformulario. Luego puedes colocar otro cuadro de texto en el pie del formulario "principal" que haga referencia al cuadro de texto del subformulario. Y cuando veas que todo funciona bien, puedes ocultarlo:

- En el pie del subformulario: =Suma([Cantidad]*[Precio])
- En el pie del formulario: = NombreSubform.Form!TextoX

Editado por pitxiku - 19/Octubre/2020 a las 20:42
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
Enlace directo a este mensaje Enviado: 21/Octubre/2020 a las 07:32
Hola Pitxiku
En primer lugar gracias por tu colaboración en la obtención de un buen resultado y en segundo lugar mis disculpas por tardar en contestar pues no lo he podido hacer antes.
Creo que has entendido bien pero, no obstante, repito el esquema:
Hay un formulario ("frmA") de tipo único formulario donde, en el detalle, pongo los datos del cliente; DNI, Nombres fechas etc así como el subformulario, ("SubfrmA") donde pongo los datos del producto; precio y cantidad a través de un combo.
Aparte tengo un formulario ("frmB") de tipo formulario continuo que me va a servir para emitir la factura. En el encabezado de este fotmulario pongo los datos del cliente, en el detalle los datos del producto y en el pie las sumas.
Siguiendo tu consejo, si he entendido bien, he puesto en  el pie del subformulario ("SubfrmA") el cuadro de "textoX" con la expresión :
=Suma([cantidad]*[Precio]). Sale correctamente el valor.
y en el pie del formulario ("frmB") el cuadro de texto "textoY" la expresión:
Me.textoY= SubfrmA.Form!TextoX
Me sale #¿Nombre?
A mi ma parece que no es correcto poner en cuadro de "textoY" en el frmB
Un saludo a tod@s
Juan


jj
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
Enlace directo a este mensaje Enviado: 21/Octubre/2020 a las 11:35
Hola de nuevo
Ya he visto donde estaba el error
Haciendo operaciones en uno de los cuadros de texto en el pie del formulario estaba poniendo:

Texto54=Suma([SinIVA]-[Texto48])


 Esto da error en el propio campo y,lógicamente, en todos en los que aparezca [SinIVA].
Sin Embargo poniendo:

Texto54=Suma([SinIVA])-[Texto48]

Está todo correcto. 
Como se puede ver, en el primer caso la suma abarca a todo, incluido el cuadro de texto mientras que en el caso correcto la suma lo excluye.
Muchas gracias a tod@s
Nota: Por mi parte podéis quitar el hilo
jj
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable