¿Cómo implemento una cláusula Iif en consulta de actualización en access?

Tengo una consulta mediante la cual inserto el total de las facturas pagadas al contado en una tabla, para eso utlilizo la siguiente consulta en sql que funciona perfectamente:

UPDATE tblEfectivo SET tblEfectivo.TotalFacturas = DSum("total","tblFactura"," FormaPago = 1 AND FechaCobro Between #" & Format(Fecha2,"mm/dd/yyyy") & "#  And  #" & Format(Fecha1,"mm/dd/yyyy") & "#");

El problema está que cuando no hay valores que cumplan esas condiciones me inserta un valor vacio, y yo quisiera que me insertara un "0", por lo que quería hacer una comparación tal que así:

UPDATE tblEfectivo SET tblEfectivo.TotalFacturas = Iif (DSum("total","tblFactura"," FormaPago = 1 AND FechaCobro Between #" & Format(Fecha2,"mm/dd/yyyy") & "#  And  #" & Format(Fecha1,"mm/dd/yyyy") & "#")) >0, DSum("total","tblFactura"," FormaPago = 1 AND FechaCobro Between #" & Format(Fecha2,"mm/dd/yyyy") & "#  And  #" & Format(Fecha1,"mm/dd/yyyy") & "#"), 0 ;

Sin embargo me da un error de sintaxis. ¿Qué estoy haciendo mal?

2 respuestas

Respuesta
1

Cuando un campo puede tener un valor nulo, puedes usar la función Nz, que antiguamente transformaba los nulos en ceros, de ahí su nombre NullZero, pero hoy en día te lo transforma en lo que quieras. Por ejemplo

TextoA=nz([texto1]) Si texto1 es nulo TextoA=0

TextoA=nz([texto1],3) Si Texto1 es nulo TextoA=3

TextoA=nz([texto1],"Adios buenas noches") Si texto1 es nulo TextoA= lo que digo en este momento

Respuesta
1

Pruebe con esto:

UPDATE tblEfectivo SET tblEfectivo.TotalFacturas = NZ(DSum(""total"",""tblFactura"","" FormaPago = 1 AND FechaCobro Between #"" & Format(Fecha2,""mm/dd/yyyy"") & ""#  And  #"" & Format(Fecha1,""mm/dd/yyyy"") & ""#""),0);

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas