Valores null como 0

Estoy haciendo algunos cálculos entre consultas, y me encuentro con que los campos que no tienen valor no los tiene en cuenta en los cálculos (son simple sumas y restas), y sin embargo yo quiero que me los cuente como 0 para estos cálculos. No se muy bien si se puede hacer pero me gustaría convertir estos valores null en 0.
Por ejemplo: tengo una columna con valores iniciales luego otra columna con valores usados y quiero calcular lo que queda en stock: (valores iniciales - valores usados), pero en aquellos que no hay valor en usado no me hace el calculo.

5 respuestas

Respuesta
4
Es sencillo. Imagina que tienes cualquier objeto (campo, variable...) con el que quieres operar i es sensible de ser nulo. Le llamamos MiCampo (supongamos que sólo es este)
Considera una expresión como la siguiente. En lugar de poner:
Resultado = campo1 + MiCampo + Campo2
Puedes poner en una consulta:
Resultado : campo1 + SiInm(EsNulo(MiCampo);0;MiCampo) + Campo2
En código VB:
Resultado = campo1 + IIF(IsNull(MiCampo),0,MiCampo) + Campo2
Ojo con ; y .
Respuesta
2
De entrada te sugeriría que utilizaras la función Nz para evaluar los posibles nulos. Pero como no aportas datos concretos sobre somo haces esos cálculos ni de como son las consultas, no puedo ser más explicito.
[ProductosLab Pedidos]! Total - [ServiciosAffy KitMarcaje usado]![Kit Marcaje usado] - [ServiciosAffy TipoArray usado]![Arrays usados]
Este seria el calculo. Cuando tengo un valor de 90 en [ProductosLab Pedidos]! Total, pero ningún valor en los otros dos, el resultado no es 90, se queda la celda vacía, a esto es alo que me refiero, lo que yo quiero es que donde no hay valor, me cuante como 0, para la resta.
Gracias
Como te decía, para evitar los nulos puedes utilizar la función Nz:
Nz([ProductosLab Pedidos]!Total, 0) - Nz([ServiciosAffy KitMarcaje usado]![Kit Marcaje usado], 0) - Nz([ServiciosAffy TipoArray usado]![Arrays usados], 0)
Es posible que, en unción de donde utilices ese calculo, debas cambiar las comas(,) por punto y coma (;)
Respuesta
1
Bien lo que debes hacer es usar la función NZ(<expresion>,<Valor null>) lo que hace nz es reemplazar el valor nulo de una expresión por otro.
Ejemplo:
nz(r,0)
Si r llegara a tener un valor nulo lo reemplazaría con 0.
Respuesta
1
Lo más fácil y rapido es en poner en valor predeterminado del campo 0
Ya me dirás si así te sirve
Los valores de los que parto para el calculo, provienen de una consulta previa que suma una serie de productos que se piden. Y no se muy bien como se predetermina un valor en consulats.
Gracias
Independientemente de la consulta en los datos de la tabla (sobre la que va la consulta) deberían de aparecer datos (es decir 0).
¿Es así?
Respuesta
-1
No entiendo tu inconveniente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas