Consultas cálculos en formulario continuo.

Acudo nuevamente a ti en ayuda para un pequeño problema que me plantea mi bd.
Dispongo de un formulario continuo (basado en una tabla), donde me aparecen los siguientes datos: código (numérico), descripción (texto), volumen (numérico) y coeficiente (numérico)
En este formulario también aplico campos calculados. Ejemplo
código  descripción   volumen    coeficiente    campo calculado             2º c.calculado    1    /        xxx      /    1200  /      0,45  /   =[Volumen]*[Coeficiente] ...=([V]*[Coef])/100
2 yyy 1500 0,5697 " ... "
Etc.
Los totales para el primer campo calculado =Suma([campocalculado]) no me crean ningún problema, este total esta puesto en el pie del informe.
En el 2º campo calculado dentro del formulario continuo, la función no me da error, pero si me lo da al intentar generar un campo en el pie del formulario para hacer la suma total. Aplico esta función: =Suma([nombredelcampo]). Esta claro que algo se me escapa.
Por último tengo otra consulta, también en un formulario continuo.
Código descripción Coeficiente % Resultado campo calculado
   1  /  Materia grasa /       0      /        5,6                               ?
   2 /     Proteinas    /        0       /        13,4                             ?
   3/      Leche        /       103     /            0                         =Nulo
Necesito aplicar una función dentro del campo (resultado campo calculado) que me haga la siguiente operación: todo registro que contenga un valor dentro de la columna % me lo multipique por el valor que aparece dentro del campo Coeficiente (unicamente de la leche, el formulario puede disponer de más registros) y luego hacer finalmente el total del campo calculado. No encuentro manera de hallar la forma.

1 respuesta

Respuesta
1
1ª Cuestión:
Campo calculado en el pie del formulario que sume un campo calculado: Es un error bastante común si creas un campo calculado "a mano", es decir, insertas un campo y le pones como origen del control la fórmula; luego no puedes llamar al control independiente (curioso ¿verdad?) La solución es poner en el pie:
=Suma([Volumen]*[Coeficiente])
Lo que estamos diciendo es que sume la multiplicación de dos campos que si existen, por eso, si hubieras hecho una consulta y hubieras puesto el campo calculado; basando el formulario en esa consulta si que podrías poner Suma([CampoCalculado]). También pasa con los informes.
2ª Cuestión:
Aplicar una condición a una fórmula, Access tiene una función que se llama SiInm que es similar a la función SI de Excel te pongo su sintaxis:
=SiInm(PRUEBALOGICA;VALORSIVERDADERO;VALORSIFALSO)
Aplicandolo a tu ejemplo
CAMPO CALCULADO: SiInm([Descripción]="Leche";[%]*[Coeficiente];"")
Supongo que descripción es un campo de texto que no depende de ninguna tabla y que los campos se llaman según está puesto en la expresión; las comillas finales significan que si es falso, es decir, la descripción no es leche no ponga nada. Te comento que se pueden anidar funciones con lo que también podrías poner otra función si fuese falso. En cuanto al total la respuesta a la primera explicación te sirve.
Resumiendo:
Si vas a utilizar varios controles independientes basados en cálculos, es más sencillo crear una consulta con dichos campos y luego hacer el formulario según esa consulta.
Nuevamente, muchas gracias por la celeridad en tu respuesta y el buen hacer que tienes sobre este mundo de Access, para la gente autodidacta como es mi caso, siempre es agradable encontrar a alguien con tan amplio conocimiento que me permita seguir aprendiendo.
Posiblemente, no será mi última duda al respecto sobre Access, no he hecho más que arrancar la base de datos en la empresa donde trabajo y ya he tenido que pulir y modificar diseños en el primer día, la verdad que esto es un no acabar nunca.
Un saludo y muchas gracias nuevamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas