Uso de Dos condiciones dentro de una función SiInm

Tengo una dida sobre dos condiciones en una función SiInm de access 2010:

Tengo dos campos uno llamado proyección y otro recaudo en una consulta lo que quoero hacer es que si el campo recaudo esta vacion ese sea igual al campo proyección y si el campo recaudo tiene un valor este sea el resultado de restar el campo proyección menos el de recaudo, la siguiente es la cadena que estoy formulando:

SiInm([recaudo]="0","",[proyeccion],SiInm([recaudo]>"0","",[proyeccion]-[recaudo]))

Esto me da error.

2 respuestas

Respuesta
2

Prueba así:

SiInm(Nz([recaudo],0)=0,[proyeccion],[proyeccion]-[recaudo])

De antemano gracias por contestar, pero mira sale el siguiente error LA EXPRESIÓN QUE HA PESPECIFICADO TIENE UNA SINTAXIS NO VALIDA y selecciona el primer corchete de izquierda a derecha llamado proyección. Gracias

Obviamente te salta error porque no tienes ningún campo que se llame ni proyeccion ni recaudo en tus tablas.

Sustituye esos nombres por los nombres de los campos y tablas (los que tengas), así:

SiInm(Nz([recaudo por port...].[VALOR],0)=0,[proyeccion-x-port...].[VALOR],[proyeccion-x-port...].[VALOR]-[recaudo por port...].[VALOR])

vuelve a salir error

Si lo hago de esta manera

funciona bien pero haria falta la parte de la resta

Cambio de enfoque:

1/ guarda la consulta de la primera imaen que enviaste, pero sin el campo calculado con SIInm

2/ crea una nueva consulta sobre la anterior, y en esa añade el campo con la primera expresión que te propuse

Paso lo mismo, espero haberlo hecho bien...

http://filebig.net/files/r2QgCaTDKT 

Pues a mi me funciona, ya directamente en la primera consulta...

Beno bien, lo que veo es que tu lo haces desde unas tablas yo lo estoy haciendo desde consultas.

Listo solucioado... te envío el resultado:

Total: SiInm(Nz([recaudo],0)="0",[proyeccion],[proyeccion]-[recaudo])

La diferencia radicó en el cero entre comillas después del igual, solo cambie eso y funcionó.
Mil y mil gracias por tu ayuda.

El 0 entre comillas tiene poco sentido, porque así lo tomas como texto y no como número. En mi opinión deberías revisar cómo llegas a ese 0 de tipo texto.

Pero bueno, si así te funciona, ¡Genial!

Respuesta
Slinm(isnull(Me.recaudo) or Me.recaudo <= 0, Me.recaudo = Me.proyeccion, Me.recaudo = Me.recaudo - Me.Proyeccion )

Intenta algo asi

Gracias por contestar, pero te cuento que sale error LA EXPRESIÓN QUE HA PESPECIFICADO TIENE UNA SINTAXIS NO VALIDA y se posiciona en el tercer me.recaudo de izquierda a derecha.

Aaa si por que pensé que lo ocupabas para una inserción

Slinm(isnull(recaudo) or recaudo <= 0, recaudo = proyeccion, recaudo = recaudo - Proyeccion)

Haber prueba asi

PÁSAME ALGUNOS DATOS para ver como llenas las tablas e intentar yo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas